Update Robot Framework format - step 17 47/102347/8
authorSangwook Ha <sangwook.ha@verizon.com>
Sat, 10 Sep 2022 03:38:21 +0000 (20:38 -0700)
committerSangwook Ha <sangwook.ha@verizon.com>
Fri, 7 Oct 2022 02:12:08 +0000 (19:12 -0700)
Robotidy has stricter formatting rules for line width, alignment,
section ordering & spacing, etc.

Update the format of Robot Framework files in the following directory
with Robotidy:

- csit/variables

JIRA: INTTEST-132
Change-Id: I9c29223fed6b2e9602fc3b9b1a139eda02077af0
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
12 files changed:
csit/variables/DIDM/Variables.robot
csit/variables/Variables.robot
csit/variables/YangmanGUIVariables.robot
csit/variables/backuprestore/BackupRestoreVariables.robot
csit/variables/daexim/DaeximVariables.robot
csit/variables/gbp/Constants.robot
csit/variables/jsonrpc/JsonrpcVariables.robot
csit/variables/l2gw/Variables.robot
csit/variables/netvirt/Variables.robot
csit/variables/openflowplugin/Variables.robot
csit/variables/ovsdb/Variables.robot
csit/variables/sfc/Variables.robot

index 572b888a1daf00db595221458ae60741c5243934..0da965c4d2dbe733617afcc7a71b36b68a2b004e 100644 (file)
@@ -1,8 +1,8 @@
 *** Variables ***
 # DIDM suite variables
-${DEVICE_TYPE}    mininet
-${DEVICE_DESCRIPTION}    None
-${DEVICE_HW_INFO}    Open vSwitch
-${DEVICE_SW_INFO}    2.0.0
-${DEVICE_MANUFACTURE}    Nicira, Inc.
-${DEVICE_SERIAL_NUMBER}    None
+${DEVICE_TYPE}              mininet
+${DEVICE_DESCRIPTION}       None
+${DEVICE_HW_INFO}           Open vSwitch
+${DEVICE_SW_INFO}           2.0.0
+${DEVICE_MANUFACTURE}       Nicira, Inc.
+${DEVICE_SERIAL_NUMBER}     None
index cbb97671d1d62398ff844f34e07952d47e7dc8ae..1905b53204d209803387a40f1545ba3cdad21cde 100644 (file)
 *** Settings ***
-Documentation     Resource consisting purely of variable definitions useful for multiple project suites.
+Documentation       Resource consisting purely of variable definitions useful for multiple project suites.
 ...
-...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
 ...
-...               This program and the accompanying materials are made available under the
-...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               These variables are considered global and immutable, so their names are in ALL_CAPS.
+...                 These variables are considered global and immutable, so their names are in ALL_CAPS.
 ...
-...               If a variable is only specific to few projects, define it in csit/variables/{project}/Variables.robot file instead.
-...               If a variable only affects few Resources, define it in csit/libraries/{resource}.robot file instead.
+...                 If a variable is only specific to few projects, define it in csit/variables/{project}/Variables.robot file instead.
+...                 If a variable only affects few Resources, define it in csit/libraries/{resource}.robot file instead.
 ...
-...               Please include a short comment on why the variable is useful and why particular value was chosen.
-...               Also a well-known variables provided by releng/builder script should be listed here,
-...               the value should be a reasonable default.
+...                 Please include a short comment on why the variable is useful and why particular value was chosen.
+...                 Also a well-known variables provided by releng/builder script should be listed here,
+...                 the value should be a reasonable default.
 ...
-...               Use ODL_SYSTEM instead of CONTROLLER and TOOLS_SYSTEM instead of MININET when referring to VMs.
+...                 Use ODL_SYSTEM instead of CONTROLLER and TOOLS_SYSTEM instead of MININET when referring to VMs.
+
 
 *** Variables ***
 # Keep this list sorted alphabetically.
-&{ACCEPT_EMPTY}    # Empty accept header. ODL should send JSON data in this case. TODO: Hide into more specific Resource if possible.
-&{ACCEPT_JSON}    Accept=application/json    # Header for accpeting JSON data. TODO: Hide into more specific Resource if possible.
-&{ACCEPT_XML}     Accept=application/xml    # Header for accepting XML data. TODO: Hide into more specific Resource if possible.
-${ALERTFIELDCONTENTRULERECORD}    /restconf/config/alertrule:alertFieldContentRuleRecord/    # FIXME: Move to a separate Centinel-related Resource and add description.
-${ALERTFIELDVALUERULERECORD}    /restconf/config/alertrule:alertFieldValueRuleRecord    # FIXME: Move to a separate Centinel-related Resource and add description.
-${ALERTMESSAGECOUNTRULERECORD}    /restconf/config/alertrule:alertMessageCountRuleRecord/    # FIXME: Move to a separate Centinel-related Resource and add description.
-@{AUTH}           ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}    # Authentication tuple for accessing ODL RESTCONF server. TODO: Migrate most suites to TemplatedRequests, then chose a more descriptive name.
-@{AUTH_ADMIN_SDN}    admin    secret    # Authentication tuple for accessing Keystone API serveri
-@{AUTH_CSC_SDN}    CSC_user    cscuser    # Authentication tuple for accessing Keystone API server
-@{AUTH_CSC_NO_ADMIN}    CSC_user_no_admin    cscusernoadmin    # Authentication tuple for accessing Keystone API server
-@{AUTH_INVALID}    invaliduser    invinvuser    # Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
-@{AUTH_SDN}       sdnadmin    sdnsdn    # Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
-@{AUTH_SDN_DOMAIN}    sdnadmin@sdn    sdnsdn    # Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
-@{AUTH_SDN_WRONG_DOM}    sdnadmin@wrong    sdnsdn    # Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
-${AUTH_TOKEN_API}    /oauth2/token    # FIXME: Move to a separate AAA-related Resource and add description.
-${BGP_TOOL_PORT}    17900    # Tool side of BGP communication listens on this port.
-${BGPCEP_LOG_LEVEL}    ${DEFAULT_BGPCEP_LOG_LEVEL}    # Some suites temporarily override org.opendaylight.bgpcep Karaf log level to this value.
-${BUNDLEFOLDER}    /opt/opendaylight    # default location to find opendaylight root folder. Upstream CSIT overrides this on the pybot command line.
-${CONFIG_NODES_API}    /restconf/config/opendaylight-inventory:nodes    # FIXME: Move to a separate Resource and add description.
-${CONFIG_TOPO_API}    /restconf/config/network-topology:network-topology    # FIXME: Move to a separate Resource and add description.
-${CONFIG_API}     /restconf/config    # FIXME: Move to a separate Resource and add description.
-${CONTAINER}      default    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CONTROLLER}     ${ODL_SYSTEM_IP}    # Deprecated. FIXME: Eradicate.
-${CONTROLLER_PASSWORD}    ${ODL_SYSTEM_PASSWORD}    # Deprecated. FIXME: Eradicate.
-${CONTROLLER_PROMPT}    ${DEFAULT_LINUX_PROMPT}    # Deprecated. FIXME: Eradicate.
-${CONTROLLERS}    ${ODL_SYSTEM_IP_LIST}    # Deprecated. FIXME: Eradicate.
-${CONTROLLER_CONFIG_MOUNT}    /restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount    # FIXME: Move to a separate Resource and add description.
-${CONTROLLER_STOP_TIMEOUT}    120    # Max number of seconds test will wait for a controller to stop. FIXME: Hiden into a Resource and rename.
-${CREATE_PATHPOLICY_TOPOLOGY_FILE}    topo-3sw-2host_multipath.py    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CREATE_PATHPOLICY_TOPOLOGY_FILE_PATH}    MininetTopo/${CREATE_PATHPOLICY_TOPOLOGY_FILE}    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CREATE_VLAN_TOPOLOGY_FILE}    vlan_vtn_test.py    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CREATE_VLAN_TOPOLOGY_FILE_PATH}    MininetTopo/${CREATE_VLAN_TOPOLOGY_FILE}    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CTRLS}          controllers    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${CTRLS_CREATE}    controllers.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description
-${CUSTOMPROP}     /tmp/${BUNDLEFOLDER}/etc/custom.properties    # Full path of custom.properties file
-${DEFAULT_LINUX_PROMPT}    >    # Generic *_SYSTEM prompt for SSHLibrary.Read_Unti_Prompt. Current value is there for historic reasons. FIXME: Add -v to releng/builder and change this value to more common "$" (without quotes, with backslash). TODO: Replace usage with the strict version.
-${DEFAULT_LINUX_PROMPT_STRICT}    ]>    # A more strict prompt substring, this only matches Bash prompt, not Mininet prompt.
-${DEFAULT_BGPCEP_LOG_LEVEL}    ${DEFAULT_ODL_LOG_LEVEL}    # Fallback Karaf log level specific to org.opendaylight.bgpcep.
-${DEFAULT_ODL_LOG_LEVEL}    INFO    # Some suites allow to change overall Karaf log level, this is the default value to set or fall back.
-${DEFAULT_PASSWORD}    ${EMPTY}    # Generic *_SYSTEM linux password. If empty, SSHLibrary.Login_With_Public_Key is attempted instead of SSHLibrary.Login. TODO: Rename to DEFAULT_LINUX_PASSWORD.
-${DEFAULT_PROTOCOL_LOG_LEVEL}    ${DEFAULT_ODL_LOG_LEVEL}    # Fallback Karaf log level specific to org.opendaylight.protocol.
-${DEFAULT_USER}    jenkins    # Generic *_SYSTEM linux user name name. TODO: Rename to DEFUALT_LINUX_USER. FIXME: Add -v to releng/builder and change the value to something more common, e.g. "vagrant".
-${DEFAULT_TIMEOUT}    30s    # Generic *_SYSTEM SSH.Login timeout. Some systems are slow to authenticate.
-${DEFAULT_TIMEOUT_HTTP}    5    # Used for HTTP connections
-${DELETE_DASHBOARDRECORD}    /restconf/operations/dashboardrule:delete-dashboard    # FIXME: Move to a separate Centinel-related Resource and add description.
-${ELASTICPORT}    9200    # Port to use when interacting with ElasticSearch. FIXME: Hide into a specific Resource.
-@{EMPTY_LIST}     # Empty list for KWs with list parameters, see: https://github.com/robotframework/robotframework/issues/2243
-${ENABLE_GLOBAL_TEST_DEADLINES}    True    # Some suites need this to avoid getting stuck. FIXME: Move to the Resource which uses this.
-${ESCAPE_CHARACTER}    \x1b    # A more readable alias to the special escape character.
-${FAIL_ON_EXCEPTIONS}    False    # global flag (can/should be tweak on pybot command line) which suites can use if they are validating exceptions to pass/fail tests on
-${FIB_ENTRIES_URL}    ${CONFIG_API}/odl-fib:fibEntries/
-${FLOWFILTERENTRIES_CREATE}    flowfilterentries.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWFILTERS}    flowfilters/in    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWFILTERS_CREATE}    flowfilters.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWFILTERS_UPDATE}    flowfilterentries    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWLISTS}      flowlists    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWLISTS_CREATE}    flowlists.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${FLOWLISTENTRIES_CREATE}    flowlistentries.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${GBP_BASE_ENDPOINTS_API}    /restconf/operational/base-endpoint:endpoints    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GBP_ENDPOINTS_API}    /restconf/operational/endpoint:endpoints    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GBP_REGEP_API}    /restconf/operations/endpoint:register-endpoint    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GBP_TENANTS_API}    /restconf/config/policy:tenants    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GBP_TUNNELS_API}    /restconf/config/opendaylight-inventory:nodes    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GBP_UNREGEP_API}    /restconf/operations/endpoint:unregister-endpoint    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${GENIUS_IFM_CONFIG_FLAG}    ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/genius-ifm-config.xml
-${GENIUS_ITM_CONFIG_FLAG}    ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/genius-itm-config.xml
-${GET_CONFIGURATION_URI}    /restconf/operational/configuration:configurationRecord/    # FIXME: Move to a separate Centinel-related Resource and add description.
-${GET_DASHBOARDRECORD}    /restconf/operational/dashboardrule:dashboardRecord/    # FIXME: Move to a separate Centinel-related Resource and add description.
-${GET_INTENTS_URI}    /retconf/config/intent:intents    # FIXME: Move to a separate Nemo-related Resource and add description.
-&{HEADERS}        Content-Type=application/json    # Deprecated. Sometimes conflicts with argument name. TODO: Migrate most suites to TemplatedRequests, then chose a more descriptive name.
-&{HEADERS_YANG_JSON}    Content-Type=application/json    # Content type for JSON data, used to work around Requests auto-serialization. FIXME: keep it as 'application/json' to make it work for both Bierman02 & RFC8040 URLs. Change it to RFC8040 media type once RFC8040 migration is completed.
-&{HEADERS_YANG_RFC8040_JSON}    Content-Type=application/yang-data+json
-&{HEADERS_XML}    Content-Type=application/xml    # Content type for XML data. TODO: Hide into more specific Resource if possible.
-${KARAF_PROMPT_LOGIN}    opendaylight-user    # This is used for karaf console login.
-${ICMP_TYPE}      135
-${KARAF_DETAILED_PROMPT}    @${ESCAPE_CHARACTER}\[0m${ESCAPE_CHARACTER}\[34mroot${ESCAPE_CHARACTER}\[0m>    # Larger substring of Karaf prompt, shorter ones may result in false positives.
-${KARAF_HOME}     ${WORKSPACE}${/}${BUNDLEFOLDER}    # Karaf home directory path.
-${KARAF_LOG}      ${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log    # location of karaf.log in standard CSIT jobs
-${KARAF_PASSWORD}    karaf    # Plaintext password to authenticate to Karaf console.
-${KARAF_PROMPT}    opendaylight-user.*root.*>    # This is used for interactive read until prompt in regexp format.
-${KARAF_SHELL_PORT}    8101    # ODL provides SSH access to Karaf consoleon this port.
-${KARAF_USER}     karaf    # User name to authenticate to Karaf SSH console.
-${KEYFILE_PASS}    any    # Implementation detail related to SSHLibrary.Login_With_Public_Key. TODO: Hide in SSHKeywords.
-${KEYSTORE_PATH}    /tmp/${BUNDLEFOLDER}/configuration/ssl/.keystore    # Full path of keystore for TLS communication
-${KEYSTORE_RELATIVE_PATH}    configuration/ssl/.keystore    # Relative path of keystore for TLS communication
-${LFM_RPC_API}    /restconf/operations/odl-mappingservice    # FIXME: Move to a separate LispFlowMapping-related Resource and add description.
-${LFM_RPC_API_LI}    /restconf/operations/lfm-mapping-database    # FIXME: Move to a separate LispFlowMapping-related Resource and add description.
-${LFM_SB_RPC_API}    /restconf/operations/odl-lisp-sb    # FIXME: Move to a separate LispFlowMapping-related Resource and add description.
-${MODULES_API}    /rests/data/ietf-yang-library:modules-state    # FIXME: Move to a separate Resource and add description.
-${NEUTRON}        127.0.0.1    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRONURL}     http://${NEUTRON}:9696    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRON_NB_API}    /controller/nb/v2/neutron    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRON_NETWORKS_API}    ${NEUTRON_NB_API}/networks    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRON_SUBNETS_API}    ${NEUTRON_NB_API}/subnets    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRON_PORTS_API}    ${NEUTRON_NB_API}/ports    # FIXME: Move to a separate Neutron-related Resource and add description.
-${NEUTRON_ROUTERS_API}    ${NEUTRON_NB_API}/routers    # FIXME: Move to a separate Neutron-related Resource and add description.
-${ODL_AKKA_PORT}    2550    # Port number akka cluster communicates on
-${ODL_BGP_PORT}    1790    # ODL side of BGP communication listens on this port number.
-${ODL_CONTROLLER_SESSION}    ${NONE}    # Deprecated. Not clear if this refers to HTTP or SSH sessions. FIXME: Eradicate, or at least convert to a resource-private variable.
-${ODL_NETCONF_CONFIG_PORT}    1830    # Port number ODL NETCONF server of Config Subsystem listens on.
-${ODL_NETCONF_MDSAL_PORT}    2830    # Port number ODL NETCONF server of MD-SAL listens on.
-${ODL_NETCONF_NAMESPACE}    urn:ietf:params:xml:ns:netconf:base:1.0    # Namespace of standardized NETCONF elements.
-${ODL_NETCONF_PASSWORD}    ${ODL_RESTCONF_PASSWORD}    # Both ODL Netconf servers require this password to authenticate.
-${ODL_NETCONF_PROMPT}    ]]>]]>    # Standard prompt string for NETCONF protocol.
-${ODL_NETCONF_USER}    ${ODL_RESTCONF_USER}    # Both ODL Netconf servers require this user name to authenticate.
-${ODL_OF_PLUGIN}    lithium    # Codename of OpenFlowPlugin implementation ODL is configured to use.
+&{ACCEPT_EMPTY}                             # Empty accept header. ODL should send JSON data in this case. TODO: Hide into more specific Resource if possible.
+# Header for accpeting JSON data. TODO: Hide into more specific Resource if possible.
+&{ACCEPT_JSON}
+...                                         Accept=application/json
+# Header for accepting XML data. TODO: Hide into more specific Resource if possible.
+&{ACCEPT_XML}
+...                                         Accept=application/xml
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${ALERTFIELDCONTENTRULERECORD}
+...                                         /restconf/config/alertrule:alertFieldContentRuleRecord/
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${ALERTFIELDVALUERULERECORD}
+...                                         /restconf/config/alertrule:alertFieldValueRuleRecord
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${ALERTMESSAGECOUNTRULERECORD}
+...                                         /restconf/config/alertrule:alertMessageCountRuleRecord/
+# Authentication tuple for accessing ODL RESTCONF server. TODO: Migrate most suites to TemplatedRequests, then chose a more descriptive name.
+@{AUTH}
+...                                         ${ODL_RESTCONF_USER}
+...                                         ${ODL_RESTCONF_PASSWORD}
+# Authentication tuple for accessing Keystone API serveri
+@{AUTH_ADMIN_SDN}
+...                                         admin
+...                                         secret
+# Authentication tuple for accessing Keystone API server
+@{AUTH_CSC_SDN}
+...                                         CSC_user
+...                                         cscuser
+# Authentication tuple for accessing Keystone API server
+@{AUTH_CSC_NO_ADMIN}
+...                                         CSC_user_no_admin
+...                                         cscusernoadmin
+# Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
+@{AUTH_INVALID}
+...                                         invaliduser
+...                                         invinvuser
+# Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
+@{AUTH_SDN}
+...                                         sdnadmin
+...                                         sdnsdn
+# Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
+@{AUTH_SDN_DOMAIN}
+...                                         sdnadmin@sdn
+...                                         sdnsdn
+# Authentication tuple for accessing ODL RESTCONF server with Keystone Authentication
+@{AUTH_SDN_WRONG_DOM}
+...                                         sdnadmin@wrong
+...                                         sdnsdn
+# FIXME: Move to a separate AAA-related Resource and add description.
+${AUTH_TOKEN_API}
+...                                         /oauth2/token
+${BGP_TOOL_PORT}                            17900    # Tool side of BGP communication listens on this port.
+# Some suites temporarily override org.opendaylight.bgpcep Karaf log level to this value.
+${BGPCEP_LOG_LEVEL}
+...                                         ${DEFAULT_BGPCEP_LOG_LEVEL}
+# default location to find opendaylight root folder. Upstream CSIT overrides this on the pybot command line.
+${BUNDLEFOLDER}
+...                                         /opt/opendaylight
+# FIXME: Move to a separate Resource and add description.
+${CONFIG_NODES_API}
+...                                         /restconf/config/opendaylight-inventory:nodes
+# FIXME: Move to a separate Resource and add description.
+${CONFIG_TOPO_API}
+...                                         /restconf/config/network-topology:network-topology
+# FIXME: Move to a separate Resource and add description.
+${CONFIG_API}
+...                                         /restconf/config
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CONTAINER}
+...                                         default
+${CONTROLLER}                               ${ODL_SYSTEM_IP}    # Deprecated. FIXME: Eradicate.
+${CONTROLLER_PASSWORD}                      ${ODL_SYSTEM_PASSWORD}    # Deprecated. FIXME: Eradicate.
+${CONTROLLER_PROMPT}                        ${DEFAULT_LINUX_PROMPT}    # Deprecated. FIXME: Eradicate.
+${CONTROLLERS}                              ${ODL_SYSTEM_IP_LIST}    # Deprecated. FIXME: Eradicate.
+# FIXME: Move to a separate Resource and add description.
+${CONTROLLER_CONFIG_MOUNT}
+...                                         /restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount
+# Max number of seconds test will wait for a controller to stop. FIXME: Hiden into a Resource and rename.
+${CONTROLLER_STOP_TIMEOUT}
+...                                         120
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CREATE_PATHPOLICY_TOPOLOGY_FILE}
+...                                         topo-3sw-2host_multipath.py
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CREATE_PATHPOLICY_TOPOLOGY_FILE_PATH}
+...                                         MininetTopo/${CREATE_PATHPOLICY_TOPOLOGY_FILE}
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CREATE_VLAN_TOPOLOGY_FILE}
+...                                         vlan_vtn_test.py
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CREATE_VLAN_TOPOLOGY_FILE_PATH}
+...                                         MininetTopo/${CREATE_VLAN_TOPOLOGY_FILE}
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${CTRLS}
+...                                         controllers
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description
+${CTRLS_CREATE}
+...                                         controllers.json
+# Full path of custom.properties file
+${CUSTOMPROP}
+...                                         /tmp/${BUNDLEFOLDER}/etc/custom.properties
+# Generic *_SYSTEM prompt for SSHLibrary.Read_Unti_Prompt. Current value is there for historic reasons. FIXME: Add -v to releng/builder and change this value to more common "$" (without quotes, with backslash). TODO: Replace usage with the strict version.
+${DEFAULT_LINUX_PROMPT}
+...                                         >
+# A more strict prompt substring, this only matches Bash prompt, not Mininet prompt.
+${DEFAULT_LINUX_PROMPT_STRICT}
+...                                         ]>
+# Fallback Karaf log level specific to org.opendaylight.bgpcep.
+${DEFAULT_BGPCEP_LOG_LEVEL}
+...                                         ${DEFAULT_ODL_LOG_LEVEL}
+# Some suites allow to change overall Karaf log level, this is the default value to set or fall back.
+${DEFAULT_ODL_LOG_LEVEL}
+...                                         INFO
+# Generic *_SYSTEM linux password. If empty, SSHLibrary.Login_With_Public_Key is attempted instead of SSHLibrary.Login. TODO: Rename to DEFAULT_LINUX_PASSWORD.
+${DEFAULT_PASSWORD}
+...                                         ${EMPTY}
+# Fallback Karaf log level specific to org.opendaylight.protocol.
+${DEFAULT_PROTOCOL_LOG_LEVEL}
+...                                         ${DEFAULT_ODL_LOG_LEVEL}
+# Generic *_SYSTEM linux user name name. TODO: Rename to DEFUALT_LINUX_USER. FIXME: Add -v to releng/builder and change the value to something more common, e.g. "vagrant".
+${DEFAULT_USER}
+...                                         jenkins
+# Generic *_SYSTEM SSH.Login timeout. Some systems are slow to authenticate.
+${DEFAULT_TIMEOUT}
+...                                         30s
+${DEFAULT_TIMEOUT_HTTP}                     5    # Used for HTTP connections
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${DELETE_DASHBOARDRECORD}
+...                                         /restconf/operations/dashboardrule:delete-dashboard
+# Port to use when interacting with ElasticSearch. FIXME: Hide into a specific Resource.
+${ELASTICPORT}
+...                                         9200
+@{EMPTY_LIST}                               # Empty list for KWs with list parameters, see: https://github.com/robotframework/robotframework/issues/2243
+# Some suites need this to avoid getting stuck. FIXME: Move to the Resource which uses this.
+${ENABLE_GLOBAL_TEST_DEADLINES}
+...                                         True
+${ESCAPE_CHARACTER}                         \x1b    # A more readable alias to the special escape character.
+# global flag (can/should be tweak on pybot command line) which suites can use if they are validating exceptions to pass/fail tests on
+${FAIL_ON_EXCEPTIONS}
+...                                         False
+${FIB_ENTRIES_URL}                          ${CONFIG_API}/odl-fib:fibEntries/
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWFILTERENTRIES_CREATE}
+...                                         flowfilterentries.json
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWFILTERS}
+...                                         flowfilters/in
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWFILTERS_CREATE}
+...                                         flowfilters.json
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWFILTERS_UPDATE}
+...                                         flowfilterentries
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWLISTS}
+...                                         flowlists
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWLISTS_CREATE}
+...                                         flowlists.json
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${FLOWLISTENTRIES_CREATE}
+...                                         flowlistentries.json
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_BASE_ENDPOINTS_API}
+...                                         /restconf/operational/base-endpoint:endpoints
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_ENDPOINTS_API}
+...                                         /restconf/operational/endpoint:endpoints
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_REGEP_API}
+...                                         /restconf/operations/endpoint:register-endpoint
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_TENANTS_API}
+...                                         /restconf/config/policy:tenants
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_TUNNELS_API}
+...                                         /restconf/config/opendaylight-inventory:nodes
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${GBP_UNREGEP_API}
+...                                         /restconf/operations/endpoint:unregister-endpoint
+${GENIUS_IFM_CONFIG_FLAG}
+...                                         ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/genius-ifm-config.xml
+${GENIUS_ITM_CONFIG_FLAG}
+...                                         ${KARAF_HOME}/etc/opendaylight/datastore/initial/config/genius-itm-config.xml
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${GET_CONFIGURATION_URI}
+...                                         /restconf/operational/configuration:configurationRecord/
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${GET_DASHBOARDRECORD}
+...                                         /restconf/operational/dashboardrule:dashboardRecord/
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${GET_INTENTS_URI}
+...                                         /retconf/config/intent:intents
+# Deprecated. Sometimes conflicts with argument name. TODO: Migrate most suites to TemplatedRequests, then chose a more descriptive name.
+&{HEADERS}
+...                                         Content-Type=application/json
+# Content type for JSON data, used to work around Requests auto-serialization. FIXME: keep it as 'application/json' to make it work for both Bierman02 & RFC8040 URLs. Change it to RFC8040 media type once RFC8040 migration is completed.
+&{HEADERS_YANG_JSON}
+...                                         Content-Type=application/json
+&{HEADERS_YANG_RFC8040_JSON}                Content-Type=application/yang-data+json
+# Content type for XML data. TODO: Hide into more specific Resource if possible.
+&{HEADERS_XML}
+...                                         Content-Type=application/xml
+${KARAF_PROMPT_LOGIN}                       opendaylight-user    # This is used for karaf console login.
+${ICMP_TYPE}                                135
+# Larger substring of Karaf prompt, shorter ones may result in false positives.
+${KARAF_DETAILED_PROMPT}
+...                                         @${ESCAPE_CHARACTER}\[0m${ESCAPE_CHARACTER}\[34mroot${ESCAPE_CHARACTER}\[0m>
+${KARAF_HOME}                               ${WORKSPACE}${/}${BUNDLEFOLDER}    # Karaf home directory path.
+# location of karaf.log in standard CSIT jobs
+${KARAF_LOG}
+...                                         ${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log
+${KARAF_PASSWORD}                           karaf    # Plaintext password to authenticate to Karaf console.
+# This is used for interactive read until prompt in regexp format.
+${KARAF_PROMPT}
+...                                         opendaylight-user.*root.*>
+${KARAF_SHELL_PORT}                         8101    # ODL provides SSH access to Karaf consoleon this port.
+${KARAF_USER}                               karaf    # User name to authenticate to Karaf SSH console.
+# Implementation detail related to SSHLibrary.Login_With_Public_Key. TODO: Hide in SSHKeywords.
+${KEYFILE_PASS}
+...                                         any
+# Full path of keystore for TLS communication
+${KEYSTORE_PATH}
+...                                         /tmp/${BUNDLEFOLDER}/configuration/ssl/.keystore
+# Relative path of keystore for TLS communication
+${KEYSTORE_RELATIVE_PATH}
+...                                         configuration/ssl/.keystore
+# FIXME: Move to a separate LispFlowMapping-related Resource and add description.
+${LFM_RPC_API}
+...                                         /restconf/operations/odl-mappingservice
+# FIXME: Move to a separate LispFlowMapping-related Resource and add description.
+${LFM_RPC_API_LI}
+...                                         /restconf/operations/lfm-mapping-database
+# FIXME: Move to a separate LispFlowMapping-related Resource and add description.
+${LFM_SB_RPC_API}
+...                                         /restconf/operations/odl-lisp-sb
+# FIXME: Move to a separate Resource and add description.
+${MODULES_API}
+...                                         /rests/data/ietf-yang-library:modules-state
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON}
+...                                         127.0.0.1
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRONURL}
+...                                         http://${NEUTRON}:9696
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON_NB_API}
+...                                         /controller/nb/v2/neutron
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON_NETWORKS_API}
+...                                         ${NEUTRON_NB_API}/networks
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON_SUBNETS_API}
+...                                         ${NEUTRON_NB_API}/subnets
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON_PORTS_API}
+...                                         ${NEUTRON_NB_API}/ports
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${NEUTRON_ROUTERS_API}
+...                                         ${NEUTRON_NB_API}/routers
+${ODL_AKKA_PORT}                            2550    # Port number akka cluster communicates on
+${ODL_BGP_PORT}                             1790    # ODL side of BGP communication listens on this port number.
+# Deprecated. Not clear if this refers to HTTP or SSH sessions. FIXME: Eradicate, or at least convert to a resource-private variable.
+${ODL_CONTROLLER_SESSION}
+...                                         ${NONE}
+${ODL_NETCONF_CONFIG_PORT}                  1830    # Port number ODL NETCONF server of Config Subsystem listens on.
+${ODL_NETCONF_MDSAL_PORT}                   2830    # Port number ODL NETCONF server of MD-SAL listens on.
+# Namespace of standardized NETCONF elements.
+${ODL_NETCONF_NAMESPACE}
+...                                         urn:ietf:params:xml:ns:netconf:base:1.0
+# Both ODL Netconf servers require this password to authenticate.
+${ODL_NETCONF_PASSWORD}
+...                                         ${ODL_RESTCONF_PASSWORD}
+${ODL_NETCONF_PROMPT}                       ]]>]]>    # Standard prompt string for NETCONF protocol.
+# Both ODL Netconf servers require this user name to authenticate.
+${ODL_NETCONF_USER}
+...                                         ${ODL_RESTCONF_USER}
+# Codename of OpenFlowPlugin implementation ODL is configured to use.
+${ODL_OF_PLUGIN}
+...                                         lithium
 # TODO: get rid of all uses of ODL_OF_PORT and use ODL_OF_PORT_6633 instead, if 6653 is not acceptable
-${ODL_OF_PORT}    6633    # Port number ODL communicates using OpenFlow protocol on.
-${ODL_OF_PORT_6633}    6633    # Port number ODL communicates using OpenFlow protocol on.
-${ODL_OF_PORT_6653}    6653    # Port number ODL communicates using OpenFlow protocol on.
-${ODL_RESTCONF_USER}    admin    # Username for basic HTTP authentication used by requests against ODL RESTCONF server.
-${ODL_RESTCONF_PASSWORD}    admin    # Plaintext password for basic HTTP authentication used by requests against ODL RESTCONF server.
-${ODL_SYSTEM_1_IP}    127.0.0.1    # IP address of system hosting member 1 od ODL cluster.
-${ODL_SYSTEM_2_IP}    127.0.0.2    # IP address of system hosting member 2 od ODL cluster.
-${ODL_SYSTEM_3_IP}    127.0.0.3    # IP address of system hosting member 3 od ODL cluster.
-${ODL_SYSTEM_IP}    ${ODL_SYSTEM_1_IP}    # IP address of system hosting ODL for SSHLibrary to connect to. First node if ODL is a cluster.
-@{ODL_SYSTEM_IP_LIST}    ${ODL_SYSTEM_1_IP}    ${ODL_SYSTEM_2_IP}    ${ODL_SYSTEM_3_IP}    # Deprecated. List of ODL cluster member IP addresses. See ClusterManagement.robot for alternatives.
-${ODL_SYSTEM_USER}    ${DEFAULT_USER}    # Linux username specific for ODL systems.
-${ODL_SYSTEM_PASSWORD}    ${DEFAULT_PASSWORD}    # Linux password (or empty to use public key) specific for ODL systems.
-${ODL_SYSTEM_PROMPT}    ${DEFAULT_LINUX_PROMPT}    # Bash prompt substring specific for ODL systems.
-${OPERATIONAL_API}    /restconf/operational    # FIXME: Move to a separate Resource and add description.
-${OPERATIONS_API}    /restconf/operations    # FIXME: Move to a separate Resource and add description.
-${OPERATIONAL_GBP_TENANTS_API}    /restconf/operational/policy:tenants    # FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
-${OPERATIONAL_NODES_API}    /restconf/operational/opendaylight-inventory:nodes    # FIXME: Move to a separate Resource and add description.
-${OPERATIONAL_NODES_NETVIRT}    /restconf/operational/network-topology:network-topology/topology/netvirt:1    \    # FIXME: Move to a separate Resource and add description.
-${OPERATIONAL_TOPO_API}    /restconf/operational/network-topology:network-topology    # FIXME: Move to a separate Resource and add description.
-${OS_SYSTEM_PROMPT}    \$    # Prompt substring specific to OpenStack systems.
-${OS_SYSTEM_PROMPT_STRICT}    \]$    # Prompt substring specific to OpenStack systems.
-${OS_CMD_SUCCESS}    Command Returns 0
-${OSREST}         /v2.0/networks    # FIXME: Move to a separate Neutron-related Resource and add description.
-${OVSDBPORT}      6640    # Port number ODL uses for OVSDB protocol communication. TODO: Move to OVSDB-specific Resource.
-${PASSWORD}       ${DEFAULT_PASSWORD}    # Deprecated. FIXME: Eradicate.
-${PORTMAP_CREATE}    portmap.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${PORT}           8080    # Deprecated. Generic HTTP port. FIXME: Eradicate.
-${PORTS}          ports/detail.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${PREDEFINE_CONNECTION_URI}    /restconf/config/nemo-object:connection-definitions    # FIXME: Move to a separate Nemo-related Resource and add description.
-${PREDEFINE_NODE_URI}    /restconf/config/nemo-object:node-definitions    # FIXME: Move to a separate Nemo-related Resource and add description.
-${PREDEFINE_ROLE_URI}    /restconf/config/nemo-user:user-roles    # FIXME: Move to a separate Nemo-related Resource and add description.
-${PREFIX}         http://${ODL_SYSTEM_IP}:${PORT}    # Deprecated. FIXME: Name is to generic. Eradicate.
-${PROTOCOL_LOG_LEVEL}    ${DEFAULT_PROTOCOL_LOG_LEVEL}    # Some suites temporarily override org.opendaylight.protocol Karaf log level to this value.
-${PWD}            ${ODL_RESTCONF_PASSWORD}    # Deprecated. FIXME: Eradicate.
-${REGEX_IPROUTE}    ip-route:169.254.169.254 via [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
-${REGEX_IPV4}     [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
-${REGEX_NAMESERVER}    nameserver [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
-${REGEX_OBTAINED}    [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3} obtained
-${REGEX_UUID}     [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
-${REGISTER_TENANT_URI}    /restconf/operations/nemo-intent:register-user    # FIXME: Move to a separate Nemo-related Resource and add description.
-${RESTCONFPORT}    8181    # Primary port for ODL RESTCONF, although 8080 should also work.
-${RESTCONFPORT_TLS}    8443    # Port for ODL RESTCONF Secure (TLS) operations
-${RESTPORT}       8282    # Deprecated. Restconf port used by AD-SAL services. FIXME: Eradicate.
-${REST_API}       /rests/data
-${REVOKE_TOKEN_API}    /oauth2/revoke    # FIXME: Move to a separate AAA-related Resource and add description.
-${SCOPE}          sdn    # Scope, used for some types of HTTP requests agains ODL RESTCONF. TODO: Migrate most suites to TemplatedRequests or AuthStandalone, then chose a more descriptive name.
-&{SEND_ACCEPT_XML_HEADERS}    Content-Type=application/xml    Accept=application/xml    # Accept and Content type for XML data. TODO: Hide into more specific Resource if possible.
-${SET_ALERTFIELDCONTENTRULERECORD}    /restconf/operations/alertrule:set-alert-field-content-rule    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_ALERTFIELDVALUERULERECORD}    /restconf/operations/alertrule:set-alert-field-value-rule    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_ALERTMESSAGECOUNTRULERECORD}    /restconf/operations/alertrule:set-alert-message-count-rule    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_CONFIGURATION_URI}    /restconf/operations/configuration:set-centinel-configurations    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_DASHBOARDRECORD}    /restconf/operations/dashboardrule:set-dashboard    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_STREAMRECORD}    /restconf/operations/stream:set-stream    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SET_SUBSCRIBEUSER}    /restconf/operations/subscribe:subscribe-user    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SSH_KEY}        id_rsa    # Implementation detail related to SSHLibrary.Login_With_Public_Key. TODO: Hide in SSHKeywords.
-${STREAMRECORD_CONFIG}    /restconf/config/stream:streamRecord    # FIXME: Move to a separate Centinel-related Resource and add description.
-${STRUCTURE_INTENT_URI}    /restconf/operations/nemo-intent:structure-style-nemo-update    # FIXME: Move to a separate Nemo-related Resource and add description.
-${SUBSCRIPTION}    /restconf/config/subscribe:subscription/    # FIXME: Move to a separate Centinel-related Resource and add description.
-${SW}             switches    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${TOOLS_SYSTEM_1_IP}    127.0.0.1    # IP address of first system hosting testing tools.
-${TOOLS_SYSTEM_2_IP}    127.0.0.2    # IP address of second system hosting testing tools.
-${TOOLS_SYSTEM_3_IP}    127.0.0.3    # IP address of third system hosting testing tools.
-${TOOLS_SYSTEM_IP}    ${TOOLS_SYSTEM_1_IP}    # IP address of primary system hosting testing tools.
-${TOOLS_SYSTEM_USER}    ${DEFAULT_USER}    # Linux user name specific for tools systems.
-${TOOLS_SYSTEM_PASSWORD}    ${DEFAULT_PASSWORD}    # Linux password specific for tools systems.
-${TOOLS_SYSTEM_PROMPT}    ${DEFAULT_LINUX_PROMPT}    # Bash prompt substring specific for tools systems.
-${TOPO_TREE_DEPTH}    3    # Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
-${TOPO_TREE_FANOUT}    2    # Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
-${TOPO_TREE_LEVEL}    2    # Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
-${TOPOLOGY_URL}    network-topology:network-topology/topology    # FIXME: Move to a separate Resource and add description.
-${USER}           ${ODL_RESTCONF_USER}    # Deprecated. FIXME: Eradicate.
-${VBRIFS}         interfaces    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VBRIFS_CREATE}    interfaces.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VBRS}           vbridges    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VBRS_CREATE}    vbridges.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VLANMAP_CREATE}    vlanmaps.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VTNC}           127.0.0.1    # IP address where VTN Coordinator application is running. TODO: Move to a VTN-specific Resource.
-&{VTNC_HEADERS}    Content-Type=application/json    username=admin    password=adminpass    # Dict of headers to use for HTTP requests against VTN Coordinator. TODO: Move to a VTN-specific Resource.
-${VTNC_PREFIX}    http://${VTNC}:${VTNCPORT}    # Shorthand for composing HTTP requests. TODO: Move to a VTN-specific Resource.
-${VTNCPORT}       8083    # Port number VTN Coordinator listens on. TODO: Move to a VTN-specific Resource.
-${VTN_INVENTORY_NODE_API}    /restconf/operational/vtn-inventory:vtn-nodes    # Path part of restconf URL towards operational vtn-nodes. TODO: Move to a VTN-specific Resource.
-${VTNS}           vtns    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VTNS_CREATE}    vtns.json    # A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
-${VTNWEBAPI}      /vtn-webapi    # Directory part of URI used when sending HTTP requests to VTN Coordinator. TODO: Move to a VTN-specific Resource.
+${ODL_OF_PORT}                              6633    # Port number ODL communicates using OpenFlow protocol on.
+${ODL_OF_PORT_6633}                         6633    # Port number ODL communicates using OpenFlow protocol on.
+${ODL_OF_PORT_6653}                         6653    # Port number ODL communicates using OpenFlow protocol on.
+# Username for basic HTTP authentication used by requests against ODL RESTCONF server.
+${ODL_RESTCONF_USER}
+...                                         admin
+# Plaintext password for basic HTTP authentication used by requests against ODL RESTCONF server.
+${ODL_RESTCONF_PASSWORD}
+...                                         admin
+${ODL_SYSTEM_1_IP}                          127.0.0.1    # IP address of system hosting member 1 od ODL cluster.
+${ODL_SYSTEM_2_IP}                          127.0.0.2    # IP address of system hosting member 2 od ODL cluster.
+${ODL_SYSTEM_3_IP}                          127.0.0.3    # IP address of system hosting member 3 od ODL cluster.
+# IP address of system hosting ODL for SSHLibrary to connect to. First node if ODL is a cluster.
+${ODL_SYSTEM_IP}
+...                                         ${ODL_SYSTEM_1_IP}
+# Deprecated. List of ODL cluster member IP addresses. See ClusterManagement.robot for alternatives.
+@{ODL_SYSTEM_IP_LIST}
+...                                         ${ODL_SYSTEM_1_IP}
+...                                         ${ODL_SYSTEM_2_IP}
+...                                         ${ODL_SYSTEM_3_IP}
+${ODL_SYSTEM_USER}                          ${DEFAULT_USER}    # Linux username specific for ODL systems.
+# Linux password (or empty to use public key) specific for ODL systems.
+${ODL_SYSTEM_PASSWORD}
+...                                         ${DEFAULT_PASSWORD}
+# Bash prompt substring specific for ODL systems.
+${ODL_SYSTEM_PROMPT}
+...                                         ${DEFAULT_LINUX_PROMPT}
+# FIXME: Move to a separate Resource and add description.
+${OPERATIONAL_API}
+...                                         /restconf/operational
+# FIXME: Move to a separate Resource and add description.
+${OPERATIONS_API}
+...                                         /restconf/operations
+# FIXME: Move to a separate GroupBasedPolicy-related Resource and add description.
+${OPERATIONAL_GBP_TENANTS_API}
+...                                         /restconf/operational/policy:tenants
+# FIXME: Move to a separate Resource and add description.
+${OPERATIONAL_NODES_API}
+...                                         /restconf/operational/opendaylight-inventory:nodes
+# FIXME: Move to a separate Resource and add description.
+${OPERATIONAL_NODES_NETVIRT}
+...                                         /restconf/operational/network-topology:network-topology/topology/netvirt:1
+...                                         \
+# FIXME: Move to a separate Resource and add description.
+${OPERATIONAL_TOPO_API}
+...                                         /restconf/operational/network-topology:network-topology
+${OS_SYSTEM_PROMPT}                         \$    # Prompt substring specific to OpenStack systems.
+${OS_SYSTEM_PROMPT_STRICT}                  \]$    # Prompt substring specific to OpenStack systems.
+${OS_CMD_SUCCESS}                           Command Returns 0
+# FIXME: Move to a separate Neutron-related Resource and add description.
+${OSREST}
+...                                         /v2.0/networks
+# Port number ODL uses for OVSDB protocol communication. TODO: Move to OVSDB-specific Resource.
+${OVSDBPORT}
+...                                         6640
+${PASSWORD}                                 ${DEFAULT_PASSWORD}    # Deprecated. FIXME: Eradicate.
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${PORTMAP_CREATE}
+...                                         portmap.json
+${PORT}                                     8080    # Deprecated. Generic HTTP port. FIXME: Eradicate.
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${PORTS}
+...                                         ports/detail.json
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${PREDEFINE_CONNECTION_URI}
+...                                         /restconf/config/nemo-object:connection-definitions
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${PREDEFINE_NODE_URI}
+...                                         /restconf/config/nemo-object:node-definitions
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${PREDEFINE_ROLE_URI}
+...                                         /restconf/config/nemo-user:user-roles
+# Deprecated. FIXME: Name is to generic. Eradicate.
+${PREFIX}
+...                                         http://${ODL_SYSTEM_IP}:${PORT}
+# Some suites temporarily override org.opendaylight.protocol Karaf log level to this value.
+${PROTOCOL_LOG_LEVEL}
+...                                         ${DEFAULT_PROTOCOL_LOG_LEVEL}
+${PWD}                                      ${ODL_RESTCONF_PASSWORD}    # Deprecated. FIXME: Eradicate.
+${REGEX_IPROUTE}
+...                                         ip-route:169.254.169.254 via [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
+${REGEX_IPV4}                               [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
+${REGEX_NAMESERVER}                         nameserver [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}
+${REGEX_OBTAINED}                           [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3} obtained
+${REGEX_UUID}                               [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${REGISTER_TENANT_URI}
+...                                         /restconf/operations/nemo-intent:register-user
+${RESTCONFPORT}                             8181    # Primary port for ODL RESTCONF, although 8080 should also work.
+${RESTCONFPORT_TLS}                         8443    # Port for ODL RESTCONF Secure (TLS) operations
+# Deprecated. Restconf port used by AD-SAL services. FIXME: Eradicate.
+${RESTPORT}
+...                                         8282
+${REST_API}                                 /rests/data
+# FIXME: Move to a separate AAA-related Resource and add description.
+${REVOKE_TOKEN_API}
+...                                         /oauth2/revoke
+# Scope, used for some types of HTTP requests agains ODL RESTCONF. TODO: Migrate most suites to TemplatedRequests or AuthStandalone, then chose a more descriptive name.
+${SCOPE}
+...                                         sdn
+# Accept and Content type for XML data. TODO: Hide into more specific Resource if possible.
+&{SEND_ACCEPT_XML_HEADERS}
+...                                         Content-Type=application/xml
+...                                         Accept=application/xml
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_ALERTFIELDCONTENTRULERECORD}
+...                                         /restconf/operations/alertrule:set-alert-field-content-rule
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_ALERTFIELDVALUERULERECORD}
+...                                         /restconf/operations/alertrule:set-alert-field-value-rule
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_ALERTMESSAGECOUNTRULERECORD}
+...                                         /restconf/operations/alertrule:set-alert-message-count-rule
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_CONFIGURATION_URI}
+...                                         /restconf/operations/configuration:set-centinel-configurations
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_DASHBOARDRECORD}
+...                                         /restconf/operations/dashboardrule:set-dashboard
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_STREAMRECORD}
+...                                         /restconf/operations/stream:set-stream
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SET_SUBSCRIBEUSER}
+...                                         /restconf/operations/subscribe:subscribe-user
+# Implementation detail related to SSHLibrary.Login_With_Public_Key. TODO: Hide in SSHKeywords.
+${SSH_KEY}
+...                                         id_rsa
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${STREAMRECORD_CONFIG}
+...                                         /restconf/config/stream:streamRecord
+# FIXME: Move to a separate Nemo-related Resource and add description.
+${STRUCTURE_INTENT_URI}
+...                                         /restconf/operations/nemo-intent:structure-style-nemo-update
+# FIXME: Move to a separate Centinel-related Resource and add description.
+${SUBSCRIPTION}
+...                                         /restconf/config/subscribe:subscription/
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${SW}
+...                                         switches
+${TOOLS_SYSTEM_1_IP}                        127.0.0.1    # IP address of first system hosting testing tools.
+${TOOLS_SYSTEM_2_IP}                        127.0.0.2    # IP address of second system hosting testing tools.
+${TOOLS_SYSTEM_3_IP}                        127.0.0.3    # IP address of third system hosting testing tools.
+# IP address of primary system hosting testing tools.
+${TOOLS_SYSTEM_IP}
+...                                         ${TOOLS_SYSTEM_1_IP}
+${TOOLS_SYSTEM_USER}                        ${DEFAULT_USER}    # Linux user name specific for tools systems.
+${TOOLS_SYSTEM_PASSWORD}                    ${DEFAULT_PASSWORD}    # Linux password specific for tools systems.
+# Bash prompt substring specific for tools systems.
+${TOOLS_SYSTEM_PROMPT}
+...                                         ${DEFAULT_LINUX_PROMPT}
+# Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
+${TOPO_TREE_DEPTH}
+...                                         3
+# Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
+${TOPO_TREE_FANOUT}
+...                                         2
+# Part of Mininet configuration? FIXME: Find who uses this and eliminate, or at least add a good description.
+${TOPO_TREE_LEVEL}
+...                                         2
+# FIXME: Move to a separate Resource and add description.
+${TOPOLOGY_URL}
+...                                         network-topology:network-topology/topology
+${USER}                                     ${ODL_RESTCONF_USER}    # Deprecated. FIXME: Eradicate.
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VBRIFS}
+...                                         interfaces
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VBRIFS_CREATE}
+...                                         interfaces.json
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VBRS}
+...                                         vbridges
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VBRS_CREATE}
+...                                         vbridges.json
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VLANMAP_CREATE}
+...                                         vlanmaps.json
+# IP address where VTN Coordinator application is running. TODO: Move to a VTN-specific Resource.
+${VTNC}
+...                                         127.0.0.1
+# Dict of headers to use for HTTP requests against VTN Coordinator. TODO: Move to a VTN-specific Resource.
+&{VTNC_HEADERS}
+...                                         Content-Type=application/json
+...                                         username=admin
+...                                         password=adminpass
+# Shorthand for composing HTTP requests. TODO: Move to a VTN-specific Resource.
+${VTNC_PREFIX}
+...                                         http://${VTNC}:${VTNCPORT}
+# Port number VTN Coordinator listens on. TODO: Move to a VTN-specific Resource.
+${VTNCPORT}
+...                                         8083
+# Path part of restconf URL towards operational vtn-nodes. TODO: Move to a VTN-specific Resource.
+${VTN_INVENTORY_NODE_API}
+...                                         /restconf/operational/vtn-inventory:vtn-nodes
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VTNS}
+...                                         vtns
+# A shorthand. FIXME: Find who uses this and eliminate, or at least add a good description.
+${VTNS_CREATE}
+...                                         vtns.json
+# Directory part of URI used when sending HTTP requests to VTN Coordinator. TODO: Move to a VTN-specific Resource.
+${VTNWEBAPI}
+...                                         /vtn-webapi
 # Keep this list sorted alphabetically.
index 4fee1f105e1b49bea881b6b775458541f9f85663..83c0fb7310c47b2ac7608e2be039b9170032f5c6 100644 (file)
 *** Settings ***
-Documentation     A resource file containing all global Yangman GUI variables
-...               to help Yangman GUI and functional testing.
-Resource          Variables.robot
+Documentation       A resource file containing all global Yangman GUI variables
+...                 to help Yangman GUI and functional testing.
+
+Resource            Variables.robot
+
 
 *** Variables ***
-${YANGMAN_LOGO}    //img[contains(@ng-src, "assets/images/logo_yangman.png") and contains(@id, "page_logo")]
-${TOGGLE_MENU_BUTTON}    //a[@id="toggleMenu"]
-${LOGOUT_BUTTON}    //a[@id="logout-button"]
+${YANGMAN_LOGO}
+...                                                     //img[contains(@ng-src, "assets/images/logo_yangman.png") and contains(@id, "page_logo")]
+${TOGGLE_MENU_BUTTON}                                   //a[@id="toggleMenu"]
+${LOGOUT_BUTTON}                                        //a[@id="logout-button"]
 # Left Panel
-${MODULES_TAB_NAME}    Modules
-${HISTORY_TAB_NAME}    History
-${COLLECTIONS_TAB_NAME}    Collections
-${LEFT_TAB_AREA}    //md-tab-content[@id="tab-content-0"]
-${MODULES_TAB_SELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${MODULES_TAB_NAME}")]
-${MODULES_TAB_UNSELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${MODULES_TAB_NAME}")]
-${HISTORY_TAB_SELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${HISTORY_TAB_NAME}")]
-${HISTORY_TAB_UNSELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${HISTORY_TAB_NAME}")]
-${COLLECTIONS_TAB_SELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${COLLECTIONS_TAB_NAME}")]
-${COLLECTIONS_TAB_UNSELECTED}    ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${COLLECTIONS_TAB_NAME}")]
-${MODULES_WERE_LOADED_ALERT}    //span[contains(text(), "Modules were loaded.")]
-${TOGGLE_MODULE_DETAIL_BUTTON_LEFT}    //md-icon[@class="arrow-switcher material-icons" and @id="toggle-module-detail"]
-${TOGGLE_MODULE_DETAIL_BUTTON_RIGHT}    //md-icon[@class="arrow-switcher material-icons arrow-switcher__left"" and @id="toggle-module-detail"]
+${MODULES_TAB_NAME}                                     Modules
+${HISTORY_TAB_NAME}                                     History
+${COLLECTIONS_TAB_NAME}                                 Collections
+${LEFT_TAB_AREA}                                        //md-tab-content[@id="tab-content-0"]
+${MODULES_TAB_SELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${MODULES_TAB_NAME}")]
+${MODULES_TAB_UNSELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${MODULES_TAB_NAME}")]
+${HISTORY_TAB_SELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${HISTORY_TAB_NAME}")]
+${HISTORY_TAB_UNSELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${HISTORY_TAB_NAME}")]
+${COLLECTIONS_TAB_SELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="true"]/span[contains(text(), "${COLLECTIONS_TAB_NAME}")]
+${COLLECTIONS_TAB_UNSELECTED}
+...                                                     ${LEFT_TAB_AREA}//md-tab-item[@aria-selected="false"]/span[contains(text(), "${COLLECTIONS_TAB_NAME}")]
+${MODULES_WERE_LOADED_ALERT}                            //span[contains(text(), "Modules were loaded.")]
+${TOGGLE_MODULE_DETAIL_BUTTON_LEFT}
+...                                                     //md-icon[@class="arrow-switcher material-icons" and @id="toggle-module-detail"]
+${TOGGLE_MODULE_DETAIL_BUTTON_RIGHT}
+...                                                     //md-icon[@class="arrow-switcher material-icons arrow-switcher__left"" and @id="toggle-module-detail"]
 # Modules Tab Left Panel
-${MODULE_TAB_CONTENT}    //*[@id="tab-content-2"]
-${MODULE_SEARCH_INPUT}    //input[@id="search-modules"]
-${MODULE_ID_LABEL}    module_
-${MODULE_LIST_ITEM}    ${MODULE_TAB_CONTENT}//md-list-item[contains(@id, "${MODULE_ID_LABEL}")]//div[@class="pointer title layout-align-center-center layout-row"]
-${MODULE_LIST_ITEM_COLLAPSED}    ${MODULE_LIST_ITEM}//following-sibling::md-list[@aria-hidden="true"]
-${MODULE_LIST_ITEM_EXPANDED}    ${MODULE_LIST_ITEM}//following-sibling::md-list[@aria-hidden="false"]
-${MODULE_LIST_MODULE_NAME_XPATH}    ${MODULE_LIST_ITEM}//p[@class="top-element flex"]
-${OPERATIONS_LABEL}    operations
-${OPERATIONAL_LABEL}    operational
-${CONFIG_LABEL}    config
-${TESTING_MODULE_NAME}    ${EMPTY}
-${TESTING_MODULE_XPATH}    ${MODULE_TAB_CONTENT}//p[contains(., "${TESTING_MODULE_NAME}")]//ancestor::md-list-item[contains(@id, "${MODULE_ID_LABEL}")]
+${MODULE_TAB_CONTENT}                                   //*[@id="tab-content-2"]
+${MODULE_SEARCH_INPUT}                                  //input[@id="search-modules"]
+${MODULE_ID_LABEL}                                      module_
+${MODULE_LIST_ITEM}
+...                                                     ${MODULE_TAB_CONTENT}//md-list-item[contains(@id, "${MODULE_ID_LABEL}")]//div[@class="pointer title layout-align-center-center layout-row"]
+${MODULE_LIST_ITEM_COLLAPSED}
+...                                                     ${MODULE_LIST_ITEM}//following-sibling::md-list[@aria-hidden="true"]
+${MODULE_LIST_ITEM_EXPANDED}
+...                                                     ${MODULE_LIST_ITEM}//following-sibling::md-list[@aria-hidden="false"]
+${MODULE_LIST_MODULE_NAME_XPATH}                        ${MODULE_LIST_ITEM}//p[@class="top-element flex"]
+${OPERATIONS_LABEL}                                     operations
+${OPERATIONAL_LABEL}                                    operational
+${CONFIG_LABEL}                                         config
+${TESTING_MODULE_NAME}                                  ${EMPTY}
+${TESTING_MODULE_XPATH}
+...                                                     ${MODULE_TAB_CONTENT}//p[contains(., "${TESTING_MODULE_NAME}")]//ancestor::md-list-item[contains(@id, "${MODULE_ID_LABEL}")]
 # Module Detail
-${MODULE_DETAIL_CONTENT}    //*[@id="tab-content-1"]
-${MODULE_DETAIL_MODULE_NAME_LABEL}    ${MODULE_DETAIL_CONTENT}//h4
-${MODULE_DETAIL_OPERATIONS_TAB_SELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${OPERATIONS_LABEL}")]
-${MODULE_DETAIL_OPERATIONS_TAB_DESELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${OPERATIONS_LABEL}")]
-${MODULE_DETAIL_OPERATIONAL_TAB_SELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${OPERATIONAL_LABEL}")]
-${MODULE_DETAIL_OPERATIONAL_TAB_DESELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${OPERATIONAL_LABEL}")]
-${MODULE_DETAIL_CONFIG_TAB_SELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${CONFIG_LABEL}")]
-${MODULE_DETAIL_CONFIG_TAB_DESELECTED}    ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${CONFIG_LABEL}")]
-${MODULE_DETAIL_TAB_CONTENT_LABEL}    tab-content-
-${MODULE_DETAIL_ACTIVE_TAB_CONTENT}    ${MODULE_DETAIL_CONTENT}//md-tab-content[contains(@class, "md-active")]
-${MODULE_DETAIL_EXPAND_BRANCH_BUTTON}    ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-icon[contains(., "add")]
-${MODULE_DETAIL_COLLAPSE_BRANCH_BUTTON}    ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-list-item//md-icon[contains(., "remove")]
-${BRANCH_LABEL}    ${EMPTY}
-${NETWORK_TOPOLOGY_LABEL}    network-topology
-${TOPOLOGY_TOPOLOGY_ID_LABEL}    topology {topology-id}
-${NODE_NODE_ID_LABEL}    node {node-id}
-${LINK_LINK_ID_LABEL}    link {link-id}
-${BRANCH_ID_LABEL}    branch-
-${MODULE_DETAIL_BRANCH}    ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-list-item[contains(@id, "${BRANCH_ID_LABEL}")]
-${MODULE_DETAIL_BRANCH_BUTTON}    ${MODULE_DETAIL_BRANCH}/button
-${MODULE_DETAIL_BRANCH_LABEL}    ${MODULE_DETAIL_BRANCH}//span[contains(@class, "indented tree-label ng-binding flex") and contains(text(), "${BRANCH_LABEL}")]
+${MODULE_DETAIL_CONTENT}                                //*[@id="tab-content-1"]
+${MODULE_DETAIL_MODULE_NAME_LABEL}                      ${MODULE_DETAIL_CONTENT}//h4
+${MODULE_DETAIL_OPERATIONS_TAB_SELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${OPERATIONS_LABEL}")]
+${MODULE_DETAIL_OPERATIONS_TAB_DESELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${OPERATIONS_LABEL}")]
+${MODULE_DETAIL_OPERATIONAL_TAB_SELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${OPERATIONAL_LABEL}")]
+${MODULE_DETAIL_OPERATIONAL_TAB_DESELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${OPERATIONAL_LABEL}")]
+${MODULE_DETAIL_CONFIG_TAB_SELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="true"]//span[contains(text(), "${CONFIG_LABEL}")]
+${MODULE_DETAIL_CONFIG_TAB_DESELECTED}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-item[@aria-selected="false"]//span[contains(text(), "${CONFIG_LABEL}")]
+${MODULE_DETAIL_TAB_CONTENT_LABEL}                      tab-content-
+${MODULE_DETAIL_ACTIVE_TAB_CONTENT}
+...                                                     ${MODULE_DETAIL_CONTENT}//md-tab-content[contains(@class, "md-active")]
+${MODULE_DETAIL_EXPAND_BRANCH_BUTTON}
+...                                                     ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-icon[contains(., "add")]
+${MODULE_DETAIL_COLLAPSE_BRANCH_BUTTON}
+...                                                     ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-list-item//md-icon[contains(., "remove")]
+${BRANCH_LABEL}                                         ${EMPTY}
+${NETWORK_TOPOLOGY_LABEL}                               network-topology
+${TOPOLOGY_TOPOLOGY_ID_LABEL}                           topology {topology-id}
+${NODE_NODE_ID_LABEL}                                   node {node-id}
+${LINK_LINK_ID_LABEL}                                   link {link-id}
+${BRANCH_ID_LABEL}                                      branch-
+${MODULE_DETAIL_BRANCH}
+...                                                     ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-list-item[contains(@id, "${BRANCH_ID_LABEL}")]
+${MODULE_DETAIL_BRANCH_BUTTON}                          ${MODULE_DETAIL_BRANCH}/button
+${MODULE_DETAIL_BRANCH_LABEL}
+...                                                     ${MODULE_DETAIL_BRANCH}//span[contains(@class, "indented tree-label ng-binding flex") and contains(text(), "${BRANCH_LABEL}")]
 #History Tab Left Panel
-${HISTORY_SEARCH_INPUT}    //input[@id="search-history"]
-${SAVE_HISTORY_REQUEST_TO_COLLECTION_BUTTON}    //button[@id="history-save-requests"]
-${DELETE_HISTORY_REQUEST_MENU}    //button[@id="history-delete-menu"]
-${DELETE_SELECTED_HISTORY_REQUEST_BUTTON}    //button[@id="history-delete-selected"]
-${DELETE_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-delete-all"]
-${SELECT_HISTORY_REQUEST_MENU}    //button[@id="history-select-menu"]
-${SELECT_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-select-all"]
-${DESELECT_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-deselect-all"]
+${HISTORY_SEARCH_INPUT}                                 //input[@id="search-history"]
+${SAVE_HISTORY_REQUEST_TO_COLLECTION_BUTTON}            //button[@id="history-save-requests"]
+${DELETE_HISTORY_REQUEST_MENU}                          //button[@id="history-delete-menu"]
+${DELETE_SELECTED_HISTORY_REQUEST_BUTTON}               //button[@id="history-delete-selected"]
+${DELETE_ALL_HISTORY_REQUESTS_BUTTON}                   //button[@id="history-delete-all"]
+${SELECT_HISTORY_REQUEST_MENU}                          //button[@id="history-select-menu"]
+${SELECT_ALL_HISTORY_REQUESTS_BUTTON}                   //button[@id="history-select-all"]
+${DESELECT_ALL_HISTORY_REQUESTS_BUTTON}                 //button[@id="history-deselect-all"]
 #Collections Tab Left Panel
-${COLLECTIONS_SEARCH_INPUT}    //input[@id="search-collections"]
-${SAVE_SELECTED_REQUEST_TO_COLLECTION_BUTTON}    //button[@id="collections-save-selected"]
-${IMPORT_COLLECTION_BUTTON}    //button[@id="importCollection"]
-${DELETE_HISTORY_REQUEST_MENU}    //button[@id="history-delete-menu"]
-${DELETE_SELECTED_HISTORY_REQUEST_BUTTON}    //button[@id="history-delete-selected"]
-${DELETE_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-delete-all"]
-${SELECT_HISTORY_REQUEST_MENU}    //button[@id="history-select-menu"]
-${SELECT_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-select-all"]
-${DESELECT_ALL_HISTORY_REQUESTS_BUTTON}    //button[@id="history-deselect-all"]
+${COLLECTIONS_SEARCH_INPUT}                             //input[@id="search-collections"]
+${SAVE_SELECTED_REQUEST_TO_COLLECTION_BUTTON}           //button[@id="collections-save-selected"]
+${IMPORT_COLLECTION_BUTTON}                             //button[@id="importCollection"]
+${DELETE_HISTORY_REQUEST_MENU}                          //button[@id="history-delete-menu"]
+${DELETE_SELECTED_HISTORY_REQUEST_BUTTON}               //button[@id="history-delete-selected"]
+${DELETE_ALL_HISTORY_REQUESTS_BUTTON}                   //button[@id="history-delete-all"]
+${SELECT_HISTORY_REQUEST_MENU}                          //button[@id="history-select-menu"]
+${SELECT_ALL_HISTORY_REQUESTS_BUTTON}                   //button[@id="history-select-all"]
+${DESELECT_ALL_HISTORY_REQUESTS_BUTTON}                 //button[@id="history-deselect-all"]
 #Right Panel Header
-${OPERATION_NAME}    EMPTY
-${OPERATION_SELECT_INPUT}    //md-select[@id="request-selected-operation"]
-${OPERATION_SELECT_INPUT_CLICKABLE}    ${OPERATION_SELECT_INPUT}//parent::md-input-container
-${SELECT_BACKDROP}    //md-backdrop[@class="md-select-backdrop md-click-catcher ng-scope"]
-${OPERATION_SELECT_MENU_EXPANDED}    //div[contains(@aria-hidden, "false") and contains(@id,"select_container_10")]
-${GET_OPTION}     //*[@id="select_option_12"]
-${POST_OPTION}    //*[@id="select_option_13"]
-${PUT_OPTION}     //*[@id="select_option_14"]
-${DELETE_OPTION}    //*[@id="select_option_15"]
-${SELECTED_OPERATION_XPATH}    ${OPERATION_SELECT_INPUT}//span/div[contains(text(), "${OPERATION_NAME}")]
-${REQUEST_URL_INPUT}    //*[@id="request-url"]
-${SEND_BUTTON}    //*[@id="send-request"]
-${SAVE_BUTTON}    //*[@id="save-request"]
-${PARAMETERS_BUTTON}    //*[@id="show-parameters"]
-${FORM_RADIOBUTTON_SELECTED}    //md-radio-button[contains(@id, "shown-data-type-form") and contains(@aria-checked, "true")]
-${FORM_RADIOBUTTON_UNSELECTED}    //md-radio-button[contains(@id, "shown-data-type-form") and contains(@aria-checked, "false")]
-${JSON_RADIOBUTTON_SELECTED}    //md-radio-button[contains(@id, "shown-data-type-json") and contains(@aria-checked, "true")]
-${JSON_RADIOBUTTON_UNSELECTED}    //md-radio-button[contains(@id, "shown-data-type-json") and contains(@aria-checked, "false")]
-${FILL_FORM_WITH_RECEIVED_DATA_CHECKBOX_SELECTED}    //span[contains(text(), "Fill form with received data after execution")]//ancestor::md-checkbox[@aria-checked="true"]
-${FILL_FORM_WITH_RECEIVED_DATA_CHECKBOX_UNSELECTED}    //span[contains(text(), "Fill form with received data after execution")]//ancestor::md-checkbox[@aria-checked="false"]
-${SHOW_SENT_DATA_CHECKBOX_SELECTED}    //md-checkbox[@id="show-sent-data-checkbox" and @aria-checked="true"]
-${SHOW_SENT_DATA_CHECKBOX_UNSELECTED}    //md-checkbox[@id="show-sent-data-checkbox" and @aria-checked="false"]
-${SHOW_RECEIVED_DATA_CHECKBOX_SELECTED}    //md-checkbox[@id="show-received-data-checkbox" and @aria-checked="true"]
-${SHOW_RECEIVED_DATA_CHECKBOX_UNSELECTED}    //md-checkbox[@id="show-received-data-checkbox" and @aria-checked="false"]
-${MILLISECONDS_LABEL}    ms
-${STATUS_LABEL}    //span[contains(text(), "Status:")]
-${STATUS_VALUE}    //span[@id="info-request-status"]
-${THREE_DOTS_DEFAULT_STATUS_AND_TIME}    ...
-${20X_REQUEST_CODE_REGEX}    .*([2][0][0-6]).*
-${40X_REQUEST_CODE_REGEX}    .*([4][0-1][0-9]).*
-${20X_OR_40X_REQUEST_CODE_REGEX}    .*([24][0-1][0-9]).*
-${TIME_LABEL}     //span[contains(text(), "Time:")]
-${TIME_VALUE}     //span[@id="info-request-execution-time"]
-${API_PATH}       //section[contains(@class, "yangmanModule__right-panel__header")]//section[@class="layout-wrap layout-row flex"]
-${HEADER_LINEAR_PROGRESSION_BAR_HIDDEN}    //section[contains(@class, "yangmanModule__right-panel__header")]/md-progress-linear[@aria-hidden="true"]
+${OPERATION_NAME}                                       EMPTY
+${OPERATION_SELECT_INPUT}                               //md-select[@id="request-selected-operation"]
+${OPERATION_SELECT_INPUT_CLICKABLE}                     ${OPERATION_SELECT_INPUT}//parent::md-input-container
+${SELECT_BACKDROP}
+...                                                     //md-backdrop[@class="md-select-backdrop md-click-catcher ng-scope"]
+${OPERATION_SELECT_MENU_EXPANDED}
+...                                                     //div[contains(@aria-hidden, "false") and contains(@id,"select_container_10")]
+${GET_OPTION}                                           //*[@id="select_option_12"]
+${POST_OPTION}                                          //*[@id="select_option_13"]
+${PUT_OPTION}                                           //*[@id="select_option_14"]
+${DELETE_OPTION}                                        //*[@id="select_option_15"]
+${SELECTED_OPERATION_XPATH}
+...                                                     ${OPERATION_SELECT_INPUT}//span/div[contains(text(), "${OPERATION_NAME}")]
+${REQUEST_URL_INPUT}                                    //*[@id="request-url"]
+${SEND_BUTTON}                                          //*[@id="send-request"]
+${SAVE_BUTTON}                                          //*[@id="save-request"]
+${PARAMETERS_BUTTON}                                    //*[@id="show-parameters"]
+${FORM_RADIOBUTTON_SELECTED}
+...                                                     //md-radio-button[contains(@id, "shown-data-type-form") and contains(@aria-checked, "true")]
+${FORM_RADIOBUTTON_UNSELECTED}
+...                                                     //md-radio-button[contains(@id, "shown-data-type-form") and contains(@aria-checked, "false")]
+${JSON_RADIOBUTTON_SELECTED}
+...                                                     //md-radio-button[contains(@id, "shown-data-type-json") and contains(@aria-checked, "true")]
+${JSON_RADIOBUTTON_UNSELECTED}
+...                                                     //md-radio-button[contains(@id, "shown-data-type-json") and contains(@aria-checked, "false")]
+${FILL_FORM_WITH_RECEIVED_DATA_CHECKBOX_SELECTED}
+...                                                     //span[contains(text(), "Fill form with received data after execution")]//ancestor::md-checkbox[@aria-checked="true"]
+${FILL_FORM_WITH_RECEIVED_DATA_CHECKBOX_UNSELECTED}
+...                                                     //span[contains(text(), "Fill form with received data after execution")]//ancestor::md-checkbox[@aria-checked="false"]
+${SHOW_SENT_DATA_CHECKBOX_SELECTED}
+...                                                     //md-checkbox[@id="show-sent-data-checkbox" and @aria-checked="true"]
+${SHOW_SENT_DATA_CHECKBOX_UNSELECTED}
+...                                                     //md-checkbox[@id="show-sent-data-checkbox" and @aria-checked="false"]
+${SHOW_RECEIVED_DATA_CHECKBOX_SELECTED}
+...                                                     //md-checkbox[@id="show-received-data-checkbox" and @aria-checked="true"]
+${SHOW_RECEIVED_DATA_CHECKBOX_UNSELECTED}
+...                                                     //md-checkbox[@id="show-received-data-checkbox" and @aria-checked="false"]
+${MILLISECONDS_LABEL}                                   ms
+${STATUS_LABEL}                                         //span[contains(text(), "Status:")]
+${STATUS_VALUE}                                         //span[@id="info-request-status"]
+${THREE_DOTS_DEFAULT_STATUS_AND_TIME}                   ...
+${20X_REQUEST_CODE_REGEX}                               .*([2][0][0-6]).*
+${40X_REQUEST_CODE_REGEX}                               .*([4][0-1][0-9]).*
+${20X_OR_40X_REQUEST_CODE_REGEX}                        .*([24][0-1][0-9]).*
+${TIME_LABEL}                                           //span[contains(text(), "Time:")]
+${TIME_VALUE}                                           //span[@id="info-request-execution-time"]
+${API_PATH}
+...                                                     //section[contains(@class, "yangmanModule__right-panel__header")]//section[@class="layout-wrap layout-row flex"]
+${HEADER_LINEAR_PROGRESSION_BAR_HIDDEN}
+...                                                     //section[contains(@class, "yangmanModule__right-panel__header")]/md-progress-linear[@aria-hidden="true"]
 #Right Panel Json Content
-${SENT_DATA_CODE_MIRROR_DISPLAYED}    //div[@id="sentData" and @aria-hidden="false"]
-${SENT_DATA_CODE_MIRROR_CODE}    ${SENT_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
-${SENT_DATA_LABEL}    ${SENT_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Sent data)]
-${SENT_DATA_ENLARGE_FONT_SIZE_BUTTON}    ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
-${SENT_DATA_REDUCE_FONT_SIZE_BUTTON}    ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
-${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}    //div[@id="ReceiveData" and @aria-hidden="false"]
-${RECEIVED_DATA_CODE_MIRROR_CODE}    ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
-${RECEIVED_DATA_LABEL}    ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Received data)]
-${RECEIVED_DATA_ENLARGE_FONT_SIZE_BUTTON}    ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
-${RECEIVED_DATA_REDUCE_FONT_SIZE_BUTTON}    ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
-${JSON_ERROR_MESSAGE_INPUT_IS_MISSING}    Error parsing input: Input is missing some of the keys of
-${JSON_ERROR_MESSAGE_CONTENT_DOES_NOT_EXIST}    Request could not be completed because the relevant data model content does not exist
-${JSON_ERROR_MESSAGE_DATA_DOES_NOT_EXIST_FOR_PATH}    Data does not exist for path
-${JSON_ERROR_MESSAGE_INPUT_IS_REQUIRED}    Input is required.
+${SENT_DATA_CODE_MIRROR_DISPLAYED}                      //div[@id="sentData" and @aria-hidden="false"]
+${SENT_DATA_CODE_MIRROR_CODE}
+...                                                     ${SENT_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
+${SENT_DATA_LABEL}
+...                                                     ${SENT_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Sent data)]
+${SENT_DATA_ENLARGE_FONT_SIZE_BUTTON}
+...                                                     ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
+${SENT_DATA_REDUCE_FONT_SIZE_BUTTON}
+...                                                     ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
+${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}                  //div[@id="ReceiveData" and @aria-hidden="false"]
+${RECEIVED_DATA_CODE_MIRROR_CODE}
+...                                                     ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
+${RECEIVED_DATA_LABEL}
+...                                                     ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Received data)]
+${RECEIVED_DATA_ENLARGE_FONT_SIZE_BUTTON}
+...                                                     ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
+${RECEIVED_DATA_REDUCE_FONT_SIZE_BUTTON}
+...                                                     ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
+${JSON_ERROR_MESSAGE_INPUT_IS_MISSING}                  Error parsing input: Input is missing some of the keys of
+${JSON_ERROR_MESSAGE_CONTENT_DOES_NOT_EXIST}
+...                                                     Request could not be completed because the relevant data model content does not exist
+${JSON_ERROR_MESSAGE_DATA_DOES_NOT_EXIST_FOR_PATH}      Data does not exist for path
+${JSON_ERROR_MESSAGE_INPUT_IS_REQUIRED}                 Input is required.
 # Right Panel Form Content
-${TOPOLOGY_ID_LABEL}    topology-id
-${FORM_ERROR_MESSAGE}    ${EMPTY}
-${FORM_CONTENT}    //section[contains(@class, "yangmanModule__right-panel__form bottom-content ng-scope") and contains(@aria-hidden, "false")]
-${ERROR_MESSAGE_IDENTIFIERS_IN_PATH_REQUIRED}    Identifiers in path are required. Please fill empty identifiers for successful request execution.
-${FORM_ERROR_MESSAGE_XPATH}    //p[contains(@id, "form-error-message") and contains (text(), "${FORM_ERROR_MESSAGE}")]
-${FORM_TOP_ELEMENT_CONTAINER}    ${FORM_CONTENT}//div[contains(@class, "yangmanModule__right-panel__form__element-container ng-scope")]
-${FORM_TOP_ELEMENT_POINTER}    ${FORM_TOP_ELEMENT_CONTAINER}//p[contains(@class, "top-element pointer")]
-${FORM_TOP_ELEMENT_LABEL_XPATH}    ${FORM_TOP_ELEMENT_POINTER}//span[contains(@class, "ng-binding ng-scope")]
-${FORM_TOP_ELEMENT_YANGMENU}    ${FORM_TOP_ELEMENT_CONTAINER}//yang-form-menu
-${FORM_TOP_ELEMENT_LIST_ITEM_ROW}    ${FORM_TOP_ELEMENT_CONTAINER}//section[@class="yangmanModule__right-panel__form__list__paginator ng-scope layout-column flex"]
-${FORM_TOP_ELEMENT_LIST_ITEM}    ${FORM_TOP_ELEMENT_LIST_ITEM_ROW}//md-tab-item[contains(@class, "md-tab ng-scope ng-isolate-scope md-ink-ripple")]
-${FORM_TOP_ELEMENT_LIST_ITEM_LABEL}    ${FORM_TOP_ELEMENT_LIST_ITEM}/span
-${YANGMENU_ADD_LIST_ITEM_BUTTON}    ${FORM_CONTENT}//yang-form-menu//button[@ng-click="addListItemFunc(); closeMenu();"]
-${YANGMENU_SHOW_ALL_LIST_ITEMS}    ${FORM_CONTENT}//yang-form-menu//button[@ng-click="switchSection('items'); setItemList();"]
-${YANGMENU_AUGMENTATIONS_BUTTON}    ${FORM_CONTENT}//yang-form-menu//button[ng-click="switchSection('augmentations')"]
-${FORM_SHOW_PREVIOUS_ITEM_ARROW}    //md-prev-button[@aria-label="Previous Page"]
-${FORM_SHOW_NEXT_ITEM_ARROW}    //md-next-button[@aria-label="Next Page"]
+${TOPOLOGY_ID_LABEL}                                    topology-id
+${FORM_ERROR_MESSAGE}                                   ${EMPTY}
+${FORM_CONTENT}
+...                                                     //section[contains(@class, "yangmanModule__right-panel__form bottom-content ng-scope") and contains(@aria-hidden, "false")]
+${ERROR_MESSAGE_IDENTIFIERS_IN_PATH_REQUIRED}
+...                                                     Identifiers in path are required. Please fill empty identifiers for successful request execution.
+${FORM_ERROR_MESSAGE_XPATH}
+...                                                     //p[contains(@id, "form-error-message") and contains (text(), "${FORM_ERROR_MESSAGE}")]
+${FORM_TOP_ELEMENT_CONTAINER}
+...                                                     ${FORM_CONTENT}//div[contains(@class, "yangmanModule__right-panel__form__element-container ng-scope")]
+${FORM_TOP_ELEMENT_POINTER}
+...                                                     ${FORM_TOP_ELEMENT_CONTAINER}//p[contains(@class, "top-element pointer")]
+${FORM_TOP_ELEMENT_LABEL_XPATH}
+...                                                     ${FORM_TOP_ELEMENT_POINTER}//span[contains(@class, "ng-binding ng-scope")]
+${FORM_TOP_ELEMENT_YANGMENU}                            ${FORM_TOP_ELEMENT_CONTAINER}//yang-form-menu
+${FORM_TOP_ELEMENT_LIST_ITEM_ROW}
+...                                                     ${FORM_TOP_ELEMENT_CONTAINER}//section[@class="yangmanModule__right-panel__form__list__paginator ng-scope layout-column flex"]
+${FORM_TOP_ELEMENT_LIST_ITEM}
+...                                                     ${FORM_TOP_ELEMENT_LIST_ITEM_ROW}//md-tab-item[contains(@class, "md-tab ng-scope ng-isolate-scope md-ink-ripple")]
+${FORM_TOP_ELEMENT_LIST_ITEM_LABEL}                     ${FORM_TOP_ELEMENT_LIST_ITEM}/span
+${YANGMENU_ADD_LIST_ITEM_BUTTON}
+...                                                     ${FORM_CONTENT}//yang-form-menu//button[@ng-click="addListItemFunc(); closeMenu();"]
+${YANGMENU_SHOW_ALL_LIST_ITEMS}
+...                                                     ${FORM_CONTENT}//yang-form-menu//button[@ng-click="switchSection('items'); setItemList();"]
+${YANGMENU_AUGMENTATIONS_BUTTON}
+...                                                     ${FORM_CONTENT}//yang-form-menu//button[ng-click="switchSection('augmentations')"]
+${FORM_SHOW_PREVIOUS_ITEM_ARROW}                        //md-prev-button[@aria-label="Previous Page"]
+${FORM_SHOW_NEXT_ITEM_ARROW}                            //md-next-button[@aria-label="Next Page"]
index da82d636f6dbfc91a917b61c72f654047fc8ddea..29b492a89bf91e605c465f7e42d99c0cf7be3ba6 100644 (file)
@@ -1,9 +1,10 @@
 *** Settings ***
-Documentation     Resource consisting purely of variable definitions useful for multiple project suites.
+Documentation       Resource consisting purely of variable definitions useful for multiple project suites.
+
 
 *** Variables ***
-${EXP_DIR}        /tmp/Export
-${EXP_DATA_FILE}    odl_backup_config.json
-${EXP_OPER_FILE}    odl_backup_operational.json
-${RELATIVE_BEFORE_BACKUP_DIR}    beforeBackup
-${RELATIVE_AFTER_RESTORE_DIR}    afterRestore
+${EXP_DIR}                          /tmp/Export
+${EXP_DATA_FILE}                    odl_backup_config.json
+${EXP_OPER_FILE}                    odl_backup_operational.json
+${RELATIVE_BEFORE_BACKUP_DIR}       beforeBackup
+${RELATIVE_AFTER_RESTORE_DIR}       afterRestore
index 7084d6eb472e895b5f6c5dfd1c5cfcae6fc72d5d..f0d3cf96044ac08502b592d6dcead0765307928e 100644 (file)
@@ -1,33 +1,34 @@
 *** Settings ***
-Documentation     Resource consisting purely of variable definitions useful for multiple project suites.
+Documentation       Resource consisting purely of variable definitions useful for multiple project suites.
+
 
 *** Variables ***
-${CANCEL_EXPORT_URL}    /rests/operations/data-export-import:cancel-export
-${EXPORT_FILE}    ${CURDIR}/schedule_export.json
-${EXPORT_INCLUDE_FILE}    ${CURDIR}/schedule_export_include.json
-${EXP_DIR}        /tmp/Export
-${EXPORT_EXCLUDE_FILE}    ${CURDIR}/schedule_export_exclude.json
-${EXPORT_INCEXCLUDE_FILE}    ${CURDIR}/schedule_export_include_exclude.json
-${SCHEDULE_EXPORT_URL}    /rests/operations/data-export-import:schedule-export
-${EXP_DATA_FILE}    odl_backup_config.json
-${EXP_OPER_FILE}    odl_backup_operational.json
-${MODELS_FILE}    odl_backup_models.json
-${STATUS_EXPORT_URL}    /rests/operations/data-export-import:status-export
-${NETCONF_PAYLOAD_JSON}    ../variables/daexim/netconf_mount.json
-${NETCONF_NODE_URL}    /rests/data/network-topology:network-topology/topology=topology-netconf/node
-${TOPOLOGY_URL}    /rests/data/network-topology:network-topology
-${NETCONF_EP_NAME}    CONTROLLER1
-${EXPORT_INITIAL_STATUS}    initial
-${EXPORT_SCHEDULED_STATUS}    scheduled
-${EXPORT_COMPLETE_STATUS}    complete
-${EXPORT_SKIPPED_STATUS}    skipped
-${FIRST_CONTROLLER_INDEX}    1
-${SECOND_CONTROLLER_INDEX}    2
-${THIRD_CONTROLLER_INDEX}    3
-${NETCONF_PORT}    1830
-${NTCF_OPR_STATUS}    connected
-${DAEXIM_DATA_DIRECTORY}    ../variables/daexim/daexim
-${MDL_DEF_FLAG}    false
-${STR_DEF_FLAG}    data
-${IMPORT_PAYLOAD}    ../variables/daexim/import.json
-${IMPORT_URL}     /rests/operations/data-export-import:immediate-import
+${CANCEL_EXPORT_URL}            /rests/operations/data-export-import:cancel-export
+${EXPORT_FILE}                  ${CURDIR}/schedule_export.json
+${EXPORT_INCLUDE_FILE}          ${CURDIR}/schedule_export_include.json
+${EXP_DIR}                      /tmp/Export
+${EXPORT_EXCLUDE_FILE}          ${CURDIR}/schedule_export_exclude.json
+${EXPORT_INCEXCLUDE_FILE}       ${CURDIR}/schedule_export_include_exclude.json
+${SCHEDULE_EXPORT_URL}          /rests/operations/data-export-import:schedule-export
+${EXP_DATA_FILE}                odl_backup_config.json
+${EXP_OPER_FILE}                odl_backup_operational.json
+${MODELS_FILE}                  odl_backup_models.json
+${STATUS_EXPORT_URL}            /rests/operations/data-export-import:status-export
+${NETCONF_PAYLOAD_JSON}         ../variables/daexim/netconf_mount.json
+${NETCONF_NODE_URL}             /rests/data/network-topology:network-topology/topology=topology-netconf/node
+${TOPOLOGY_URL}                 /rests/data/network-topology:network-topology
+${NETCONF_EP_NAME}              CONTROLLER1
+${EXPORT_INITIAL_STATUS}        initial
+${EXPORT_SCHEDULED_STATUS}      scheduled
+${EXPORT_COMPLETE_STATUS}       complete
+${EXPORT_SKIPPED_STATUS}        skipped
+${FIRST_CONTROLLER_INDEX}       1
+${SECOND_CONTROLLER_INDEX}      2
+${THIRD_CONTROLLER_INDEX}       3
+${NETCONF_PORT}                 1830
+${NTCF_OPR_STATUS}              connected
+${DAEXIM_DATA_DIRECTORY}        ../variables/daexim/daexim
+${MDL_DEF_FLAG}                 false
+${STR_DEF_FLAG}                 data
+${IMPORT_PAYLOAD}               ../variables/daexim/import.json
+${IMPORT_URL}                   /rests/operations/data-export-import:immediate-import
index 2341eb15876b26178c9a40212b93183b8ba0215e..44530d38e06d25bfeed2bc9e3e0b642a7e81993e 100644 (file)
@@ -1,9 +1,11 @@
 *** Settings ***
-Documentation     Project specific constants.
+Documentation       Project specific constants.
+
 
 *** Variables ***
-${NETWORK_CLIENT_GROUP}    ccc5e444-573c-11e5-885d-feff819cdc9f
-${UUID_NO_DASHES}    [0-9a-f]{8}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{12}
-${UUID_PATTERN}    [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
-${NAME_PATTERN}    [a-zA-Z]([a-zA-Z0-9\-_.])*
-${MAC_ADDRESS_PATTERN}    [0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}
+${NETWORK_CLIENT_GROUP}     ccc5e444-573c-11e5-885d-feff819cdc9f
+${UUID_NO_DASHES}           [0-9a-f]{8}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{12}
+${UUID_PATTERN}             [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
+${NAME_PATTERN}             [a-zA-Z]([a-zA-Z0-9\-_.])*
+${MAC_ADDRESS_PATTERN}
+...                         [0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}[:-][0-9A-Fa-f]{2}
index 6301683a12459facb6858cad3ecc86b9cccbd6a8..5116c0bcd4393798e30d73079636f34a055ce6e2 100644 (file)
@@ -1,17 +1,18 @@
 *** Settings ***
-Documentation     Resource consisting purely of variable definitions useful for multiple project suites.
+Documentation       Resource consisting purely of variable definitions useful for multiple project suites.
+
 
 *** Variables ***
-${JSONRPCCONFIG_MODULE_JSON}    ${CURDIR}/jsonrpcconfig_module.json
-${JSONRPCCONFIG_DATA_JSON}    ${CURDIR}/jsonrpcconfig_data.json
-${READ_SERVICE_PEER_URL}    /rests/data/jsonrpc:config/configured-endpoints
-${READ_SERVICE_PEER_PAYLOAD}    ${CURDIR}/readservice_peer_payload.json
-${READ_SERVICE_PEER_MOUNT_PATH}    /yang-ext:mount/jsonrpc:config
-${DEFAULT_ENDPOINT}    foo
-${DEFAULT_PORT}    4444
-${FIRST_CONTROLLER_INDEX}    1
-${CENTOS_PIP}     sudo yum -y install python-pip
-${UB_PIP}         sudo apt-get install -y python-pip
-${READ_SERVICE_SCRIPT}    ${CURDIR}/odl-jsonrpc-test-read
+${JSONRPCCONFIG_MODULE_JSON}            ${CURDIR}/jsonrpcconfig_module.json
+${JSONRPCCONFIG_DATA_JSON}              ${CURDIR}/jsonrpcconfig_data.json
+${READ_SERVICE_PEER_URL}                /rests/data/jsonrpc:config/configured-endpoints
+${READ_SERVICE_PEER_PAYLOAD}            ${CURDIR}/readservice_peer_payload.json
+${READ_SERVICE_PEER_MOUNT_PATH}         /yang-ext:mount/jsonrpc:config
+${DEFAULT_ENDPOINT}                     foo
+${DEFAULT_PORT}                         4444
+${FIRST_CONTROLLER_INDEX}               1
+${CENTOS_PIP}                           sudo yum -y install python-pip
+${UB_PIP}                               sudo apt-get install -y python-pip
+${READ_SERVICE_SCRIPT}                  ${CURDIR}/odl-jsonrpc-test-read
 ${JSONRPCCONFIG_MODULE_DEFAULT_DATA}    jsonrpc:config
-${READSERVICE_NAME}    foo
+${READSERVICE_NAME}                     foo
index 371ea9f27ba1dc2add4ce7f85645988aa45b6b5d..527595dce2b7f5919482e614870bd950e9201802 100644 (file)
 *** Settings ***
-Resource          ../../variables/netvirt/Variables.robot
+Resource    ../../variables/netvirt/Variables.robot
+
 
 *** Variables ***
 #Configurable Variables
-${OS_IP}          ${OS_CONTROL_NODE_IP}
-${OVS_IP}         ${OS_COMPUTE_1_IP}
-${OVS2_IP}        ${OS_COMPUTE_2_IP}
-${HWVTEP_IP}      ${TOOLS_SYSTEM_1_IP}
-${HWVTEP2_IP}     ${TOOLS_SYSTEM_2_IP}
-${ODL_IP}         ${ODL_SYSTEM_1_IP}
-${OS_PASSWORD}    ${EMPTY}
-${HWVTEP_BRIDGE}    br-hwvtep-blue
-${HWVTEP2_BRIDGE}    br-hwvtep-red
-${DEVSTACK_DEPLOY_PATH}    /home/stack/devstack
-${HWVTEP_NS1}     NS1
-${HWVTEP_NS2}     NS2
-${HWVTEP2_NS1}    NS3
-${HWVTEP2_NS2}    NS4
-${HWVTEP_PORT_1}    HWVPORT1
-${HWVTEP_PORT_2}    HWVPORT2
-${HWVTEP_PORT_3}    HWVPORT3
-${HWVTEP2_PORT_1}    HWVPORT4
-${HWVTEP2_PORT_2}    HWVPORT5
-${L2GW_NAME1}     GW1
-${L2GW_NAME2}     GW2
-${L2GW_NAME3}     GW3
-${L2GW_NAME4}     GW4
-${NET_1_SEGID}    1063
-${NET_1}          NETHWV1
-${NET_2_SEGID}    1064
-${NET_2}          NETHWV2
-${NS_PORT1}       PORT1
-${NS_PORT2}       PORT2
-${NS_PORT3}       PORT3
-${NS2_PORT1}      PORT4
-${NS2_PORT2}      PORT5
-${NS_TAP1}        TAP1
-${NS_TAP2}        TAP2
-${NS_TAP3}        TAP3
-${NS2_TAP1}       TAP4
-${NS3_TAP1}       TAP5
-${NS4_TAP1}       TAP6
-${OVS_PORT_1}     OVSPORT1
-${OVS_PORT_2}     OVSPORT2
-${OVS2_PORT_1}    OVSPORT3
-${OVS2_PORT_2}    OVSPORT4
-${OVS_VM1_NAME}    VM1
-${OVS_VM2_NAME}    VM2
-${OVS2_VM1_NAME}    VM3
-${OVS_VM2_NAME}    VM4
-${SECURITY_GROUP_L2GW}    sg-l2gateway
-${SECURITY_GROUP_L2GW_NONE}    --no-security-groups
-${SUBNET_1}       HWV-SUB1
-${SUBNET_2}       HWV-SUB2
-${SUBNET_RANGE1}    13.0.0.0/24
-${SUBNET_RANGE2}    14.0.0.0/24
+${OS_IP}                                ${OS_CONTROL_NODE_IP}
+${OVS_IP}                               ${OS_COMPUTE_1_IP}
+${OVS2_IP}                              ${OS_COMPUTE_2_IP}
+${HWVTEP_IP}                            ${TOOLS_SYSTEM_1_IP}
+${HWVTEP2_IP}                           ${TOOLS_SYSTEM_2_IP}
+${ODL_IP}                               ${ODL_SYSTEM_1_IP}
+${OS_PASSWORD}                          ${EMPTY}
+${HWVTEP_BRIDGE}                        br-hwvtep-blue
+${HWVTEP2_BRIDGE}                       br-hwvtep-red
+${DEVSTACK_DEPLOY_PATH}                 /home/stack/devstack
+${HWVTEP_NS1}                           NS1
+${HWVTEP_NS2}                           NS2
+${HWVTEP2_NS1}                          NS3
+${HWVTEP2_NS2}                          NS4
+${HWVTEP_PORT_1}                        HWVPORT1
+${HWVTEP_PORT_2}                        HWVPORT2
+${HWVTEP_PORT_3}                        HWVPORT3
+${HWVTEP2_PORT_1}                       HWVPORT4
+${HWVTEP2_PORT_2}                       HWVPORT5
+${L2GW_NAME1}                           GW1
+${L2GW_NAME2}                           GW2
+${L2GW_NAME3}                           GW3
+${L2GW_NAME4}                           GW4
+${NET_1_SEGID}                          1063
+${NET_1}                                NETHWV1
+${NET_2_SEGID}                          1064
+${NET_2}                                NETHWV2
+${NS_PORT1}                             PORT1
+${NS_PORT2}                             PORT2
+${NS_PORT3}                             PORT3
+${NS2_PORT1}                            PORT4
+${NS2_PORT2}                            PORT5
+${NS_TAP1}                              TAP1
+${NS_TAP2}                              TAP2
+${NS_TAP3}                              TAP3
+${NS2_TAP1}                             TAP4
+${NS3_TAP1}                             TAP5
+${NS4_TAP1}                             TAP6
+${OVS_PORT_1}                           OVSPORT1
+${OVS_PORT_2}                           OVSPORT2
+${OVS2_PORT_1}                          OVSPORT3
+${OVS2_PORT_2}                          OVSPORT4
+${OVS_VM1_NAME}                         VM1
+${OVS_VM2_NAME}                         VM2
+${OVS2_VM1_NAME}                        VM3
+${OVS_VM2_NAME}                         VM4
+${SECURITY_GROUP_L2GW}                  sg-l2gateway
+${SECURITY_GROUP_L2GW_NONE}             --no-security-groups
+${SUBNET_1}                             HWV-SUB1
+${SUBNET_2}                             HWV-SUB2
+${SUBNET_RANGE1}                        13.0.0.0/24
+${SUBNET_RANGE2}                        14.0.0.0/24
 #Dont Change The Below Entries
-${GREP_OVSDB_DUMP_PHYSICAL_SWITCH}    sudo ovsdb-client dump hardware_vtep -f csv | grep -A2 "Physical_Switch table"
-${ADD_VTEP_PS}    sudo vtep-ctl add-ps
-${CREATE VTEP}    sudo ovsdb-tool create /etc/openvswitch/vtep.db ${OVS_HOME}/vtep.ovsschema
-${CREATE_OVS_BRIDGE}    sudo ovs-vsctl add-br
-${CREATE_OVS_PORT}    sudo ovs-vsctl add-port
-${CREATE_OVSDB}    sudo ovsdb-tool create /etc/openvswitch/ovs.db ${OVS_HOME}/vswitch.ovsschema
-${DEL_OVS_BRIDGE}    sudo ovs-vsctl del-br
-${DETACH_VSWITCHD}    sudo ovs-vswitchd --pidfile --detach
-${GET_DPNID}      printf "%d\\n" 0x`sudo ovs-ofctl show -O Openflow13 ${INTEGRATION_BRIDGE} | head -1 | awk -F "dpid:" '{print $2}'`
-${GET_PORT_URL}    neutron:neutron/ports/port
-${GREP_OVS}       ps -ef | grep ovs
-${GREP_OVSDB_DUMP_MANAGER_TABLE}    sudo ovsdb-client dump hardware_vtep -f csv | grep -A2 "Manager table"
-${HW_ETHER}       hw ether
-${HWVTEP_NETWORK_TOPOLOGY}    /restconf/operational/network-topology:network-topology/topology/hwvtep:1/
-${IFCONF}         ifconfig
-${INIT_VSCTL}     sudo ovs-vsctl --no-wait init
-${IP_LINK_ADD}    ${IP_LINK} add
-${IP_LINK_DEL}    ${IP_LINK} del
-${IP_LINK_SET}    ${IP_LINK} set
-${IP_LINK}        sudo ip link
-${IPLINK_SET}     ip link set dev
-${KILL_OVSDB_PROC}    sudo killall -9 ovsdb-server
-${KILL_VSWITCHD_PROC}    sudo killall -9 ovs-vswitchd
-${KILL_VTEP_PROC}    sudo killall -9 python
-${L2GW_CONN_CREATE}    neutron l2-gateway-connection-create --default-segmentation-id 0
-${L2GW_CONN_DELETE}    neutron l2-gateway-connection-delete
-${L2GW_LIST_REST_URL}    /restconf/config/neutron:neutron/l2gateways/
-${L2GW_CONN_LIST_REST_URL}    /restconf/config/neutron:neutron/l2gatewayConnections/
-${L2GW_CREATE}    neutron l2-gateway-create --device
-${L2GW_UPDATE}    neutron l2-gateway-update --device
-${L2GW_DELETE}    neutron l2-gateway-delete
-${L2GW_GET_CONN_YAML}    neutron l2-gateway-connection-list -f yaml
-${L2GW_GET_CONN}    neutron l2-gateway-connection-list
-${L2GW_GET_YAML}    neutron l2-gateway-list -f yaml
-${L2GW_GET}       neutron l2-gateway-list
-${L2GW_SHOW}      neutron l2-gateway-show
-${NET_ADDT_ARG}    --provider-network-type vxlan --provider-segment
-${NETNS_ADD}      ${NETNS} add
-${NETNS_DEL}      ${NETNS} del
-${NETNS_EXEC}     ${NETNS} exec
-${NETNS}          sudo ip netns
-${NETSTAT}        sudo netstat -nap
-${PACKET_LOSS}    , 100% packet loss
-${ODL_STREAM}     dummy
-${OVS_DEL_CTRLR}    sudo ovs-vsctl del-controller
-${OVS_DEL_MGR}    sudo ovs-vsctl del-manager
-${OVS_HOME}       /usr/share/openvswitch/
-${OVS_RESTART}    sudo service openvswitch-switch restart
-${OVS_SET_CTRLR}    sudo ovs-vsctl set-controller
-${OVS_SET_MGR}    sudo ovs-vsctl set-manager tcp
-${OVS_SHOW}       sudo ovs-vsctl show
-${OVSDB_CLIENT_DUMP}    sudo ovsdb-client dump hardware_vtep
-${OVSDB_NETWORK_TOPOLOGY}    /restconf/operational/network-topology:network-topology/topology/ovsdb:1/
-${REM_OVSDB}      sudo rm /etc/openvswitch/ovs.db
-${REM_VTEPDB}     sudo rm /etc/openvswitch/vtep.db
-${SET_FAIL_MODE}    sudo ovs-vsctl set-fail-mode
-${SET_VTEP_PS}    sudo vtep-ctl set ${PHYSICAL_SWITCH_TABLE}
-${SLEEP1S}        sleep 1
-${START_OVSDB_SERVER}    sudo ovsdb-server --pidfile --detach --log-file --remote punix:/var/run/openvswitch/db.sock --remote=db:hardware_vtep,Global,managers /etc/openvswitch/ovs.db /etc/openvswitch/vtep.db
-${START_OVSVTEP}    sudo /usr/share/openvswitch/scripts/ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log --pidfile=/var/run/openvswitch/ovs-vtep.pid --detach
-${STR_VIF_REPLACE}    "neutron-binding:vif-type":"ovs"
-${STR_VIF_TYPE}    "neutron-binding:vif-type":"unbound"
-${STR_VNIC_REPLACE}    "neutron-binding:vnic-type":"direct"
-${STR_VNIC_TYPE}    "neutron-binding:vnic-type":"normal"
-${SUBNET_ADDT_ARG}    --dhcp
-${UUID_COL_NAME}    _uuid
-${VTEP LIST}      sudo vtep-ctl list
-${VTEP_ADD_MGR}    sudo vtep-ctl set-manager tcp
-${VTEP_DEL_MGR}    sudo vtep-ctl del-manager
-${VTEP_LIST_COLUMN}    sudo vtep-ctl --columns=
+${GREP_OVSDB_DUMP_PHYSICAL_SWITCH}      sudo ovsdb-client dump hardware_vtep -f csv | grep -A2 "Physical_Switch table"
+${ADD_VTEP_PS}                          sudo vtep-ctl add-ps
+${CREATE VTEP}                          sudo ovsdb-tool create /etc/openvswitch/vtep.db ${OVS_HOME}/vtep.ovsschema
+${CREATE_OVS_BRIDGE}                    sudo ovs-vsctl add-br
+${CREATE_OVS_PORT}                      sudo ovs-vsctl add-port
+${CREATE_OVSDB}                         sudo ovsdb-tool create /etc/openvswitch/ovs.db ${OVS_HOME}/vswitch.ovsschema
+${DEL_OVS_BRIDGE}                       sudo ovs-vsctl del-br
+${DETACH_VSWITCHD}                      sudo ovs-vswitchd --pidfile --detach
+${GET_DPNID}
+...                                     printf "%d\\n" 0x`sudo ovs-ofctl show -O Openflow13 ${INTEGRATION_BRIDGE} | head -1 | awk -F "dpid:" '{print $2}'`
+${GET_PORT_URL}                         neutron:neutron/ports/port
+${GREP_OVS}                             ps -ef | grep ovs
+${GREP_OVSDB_DUMP_MANAGER_TABLE}        sudo ovsdb-client dump hardware_vtep -f csv | grep -A2 "Manager table"
+${HW_ETHER}                             hw ether
+${HWVTEP_NETWORK_TOPOLOGY}              /restconf/operational/network-topology:network-topology/topology/hwvtep:1/
+${IFCONF}                               ifconfig
+${INIT_VSCTL}                           sudo ovs-vsctl --no-wait init
+${IP_LINK_ADD}                          ${IP_LINK} add
+${IP_LINK_DEL}                          ${IP_LINK} del
+${IP_LINK_SET}                          ${IP_LINK} set
+${IP_LINK}                              sudo ip link
+${IPLINK_SET}                           ip link set dev
+${KILL_OVSDB_PROC}                      sudo killall -9 ovsdb-server
+${KILL_VSWITCHD_PROC}                   sudo killall -9 ovs-vswitchd
+${KILL_VTEP_PROC}                       sudo killall -9 python
+${L2GW_CONN_CREATE}                     neutron l2-gateway-connection-create --default-segmentation-id 0
+${L2GW_CONN_DELETE}                     neutron l2-gateway-connection-delete
+${L2GW_LIST_REST_URL}                   /restconf/config/neutron:neutron/l2gateways/
+${L2GW_CONN_LIST_REST_URL}              /restconf/config/neutron:neutron/l2gatewayConnections/
+${L2GW_CREATE}                          neutron l2-gateway-create --device
+${L2GW_UPDATE}                          neutron l2-gateway-update --device
+${L2GW_DELETE}                          neutron l2-gateway-delete
+${L2GW_GET_CONN_YAML}                   neutron l2-gateway-connection-list -f yaml
+${L2GW_GET_CONN}                        neutron l2-gateway-connection-list
+${L2GW_GET_YAML}                        neutron l2-gateway-list -f yaml
+${L2GW_GET}                             neutron l2-gateway-list
+${L2GW_SHOW}                            neutron l2-gateway-show
+${NET_ADDT_ARG}                         --provider-network-type vxlan --provider-segment
+${NETNS_ADD}                            ${NETNS} add
+${NETNS_DEL}                            ${NETNS} del
+${NETNS_EXEC}                           ${NETNS} exec
+${NETNS}                                sudo ip netns
+${NETSTAT}                              sudo netstat -nap
+${PACKET_LOSS}                          , 100% packet loss
+${ODL_STREAM}                           dummy
+${OVS_DEL_CTRLR}                        sudo ovs-vsctl del-controller
+${OVS_DEL_MGR}                          sudo ovs-vsctl del-manager
+${OVS_HOME}                             /usr/share/openvswitch/
+${OVS_RESTART}                          sudo service openvswitch-switch restart
+${OVS_SET_CTRLR}                        sudo ovs-vsctl set-controller
+${OVS_SET_MGR}                          sudo ovs-vsctl set-manager tcp
+${OVS_SHOW}                             sudo ovs-vsctl show
+${OVSDB_CLIENT_DUMP}                    sudo ovsdb-client dump hardware_vtep
+${OVSDB_NETWORK_TOPOLOGY}               /restconf/operational/network-topology:network-topology/topology/ovsdb:1/
+${REM_OVSDB}                            sudo rm /etc/openvswitch/ovs.db
+${REM_VTEPDB}                           sudo rm /etc/openvswitch/vtep.db
+${SET_FAIL_MODE}                        sudo ovs-vsctl set-fail-mode
+${SET_VTEP_PS}                          sudo vtep-ctl set ${PHYSICAL_SWITCH_TABLE}
+${SLEEP1S}                              sleep 1
+${START_OVSDB_SERVER}
+...                                     sudo ovsdb-server --pidfile --detach --log-file --remote punix:/var/run/openvswitch/db.sock --remote=db:hardware_vtep,Global,managers /etc/openvswitch/ovs.db /etc/openvswitch/vtep.db
+${START_OVSVTEP}
+...                                     sudo /usr/share/openvswitch/scripts/ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log --pidfile=/var/run/openvswitch/ovs-vtep.pid --detach
+${STR_VIF_REPLACE}                      "neutron-binding:vif-type":"ovs"
+${STR_VIF_TYPE}                         "neutron-binding:vif-type":"unbound"
+${STR_VNIC_REPLACE}                     "neutron-binding:vnic-type":"direct"
+${STR_VNIC_TYPE}                        "neutron-binding:vnic-type":"normal"
+${SUBNET_ADDT_ARG}                      --dhcp
+${UUID_COL_NAME}                        _uuid
+${VTEP LIST}                            sudo vtep-ctl list
+${VTEP_ADD_MGR}                         sudo vtep-ctl set-manager tcp
+${VTEP_DEL_MGR}                         sudo vtep-ctl del-manager
+${VTEP_LIST_COLUMN}                     sudo vtep-ctl --columns=
 #HWVTEP Table Names
-${LOGICAL_SWITCH_TABLE}    Logical_Switch
-${GLOBAL_TABLE}    Global
-${MANAGER_TABLE}    Manager
-${MCAST_MACS_LOCAL_TABLE}    Mcast_Macs_Local
-${MCAST_MACS_REMOTE_TABLE}    Mcast_Macs_Remote
-${PHYSICAL_LOCATOR_TABLE}    Physical_Locator
-${PHYSICAL_PORT_TABLE}    Physical_Port
-${PHYSICAL_SWITCH_TABLE}    Physical_Switch
-${TUNNEL_TABLE}    Tunnel
-${UCAST_MACS_LOCALE_TABLE}    Ucast_Macs_Local
-${UCAST_MACS_REMOTE_TABLE}    Ucast_Macs_Remote
+${LOGICAL_SWITCH_TABLE}                 Logical_Switch
+${GLOBAL_TABLE}                         Global
+${MANAGER_TABLE}                        Manager
+${MCAST_MACS_LOCAL_TABLE}               Mcast_Macs_Local
+${MCAST_MACS_REMOTE_TABLE}              Mcast_Macs_Remote
+${PHYSICAL_LOCATOR_TABLE}               Physical_Locator
+${PHYSICAL_PORT_TABLE}                  Physical_Port
+${PHYSICAL_SWITCH_TABLE}                Physical_Switch
+${TUNNEL_TABLE}                         Tunnel
+${UCAST_MACS_LOCALE_TABLE}              Ucast_Macs_Local
+${UCAST_MACS_REMOTE_TABLE}              Ucast_Macs_Remote
 #Regular Expressions
-${VLAN_BINDING_REGEX}    vlan_bindings+\\s+:\\s+[{]0[=]
-${NETSTAT_OVSDB_REGEX}    ${ODL_SYSTEM_IP}:${OVSDBPORT}\\s+ESTABLISHED\\s
-${NETSTAT_OF_REGEX}    ${ODL_SYSTEM_IP}:${ODL_OF_PORT}\\s+ESTABLISHED\\s
+${VLAN_BINDING_REGEX}                   vlan_bindings+\\s+:\\s+[{]0[=]
+${NETSTAT_OVSDB_REGEX}                  ${ODL_SYSTEM_IP}:${OVSDBPORT}\\s+ESTABLISHED\\s
+${NETSTAT_OF_REGEX}                     ${ODL_SYSTEM_IP}:${ODL_OF_PORT}\\s+ESTABLISHED\\s
index e29d7fdfcfab62a2ed30a66236f154bb726301b4..b80463f3fdce900b2321350739762bfab6d5cfb1 100644 (file)
 *** Settings ***
-Documentation     Variables for Netvirt Test Suites
+Documentation       Variables for Netvirt Test Suites
+
 
 *** Variables ***
 # Exceptions for which we will not create a failure
-@{NETVIRT_DIAG_SERVICES}    OPENFLOW    IFM    ITM    DATASTORE    ELAN    OVSDB
-${CIRROS_stable/queens}    cirros-0.3.5-x86_64-disk
-${CIRROS_stable/rocky}    cirros-0.3.5-x86_64-disk
-${CIRROS_stable/stein}    cirros-0.4.0-x86_64-disk
-${PASSWORD_CIRROS_stable/stein}    gocubsgo
-${PASSWORD_CIRROS_stable/rocky}    cubswin:)
-${PASSWORD_CIRROS_stable/queens}    cubswin:)
-${CIRROS_master}    cirros-0.4.0-x86_64-disk
-${DEFAULT_PING_COUNT}    3
-${PRE_CLEAN_OPENSTACK_ALL}    False
-${EXTERNAL_NET_NAME}    external-net
-${EXTERNAL_SUBNET_NAME}    external-subnet
-${INTEGRATION_BRIDGE}    br-int
-${EXTERNAL_GATEWAY}    10.10.10.250
-${EXTERNAL_SUBNET}    10.10.10.0/24
-${EXTERNAL_SUBNET_ALLOCATION_POOL}    start=10.10.10.2,end=10.10.10.249
-${NET1_IPV6_ADDR_POOL}    --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2:ffff:ffff:ffff:fffe
-${NET2_IPV6_ADDR_POOL}    --allocation-pool start=2001:db8:0:3::2,end=2001:db8:0:3:ffff:ffff:ffff:fffe
-${RESP_CODE}      200
-${RESP_ERROR_CODE}    400
-${MAC_REGEX}      ([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})
-${IP_REGEX}       (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
-${IP6_REGEX}      (2001:([0-9A-Fa-f]{0,4}:){1,6}([0-9A-Fa-f]{1,4}))
-${IP6_SUBNET_CIDR_SUFFIX}    ::/64
-${IP6_ADDR_SUFFIX}    (:[a-f0-9]{,4}){,4}
-${PING_REGEXP}    , 0% packet loss
-${NO_PING_REGEXP}    , 100% packet loss
+@{NETVIRT_DIAG_SERVICES}                OPENFLOW    IFM    ITM    DATASTORE    ELAN    OVSDB
+${CIRROS_stable/queens}                 cirros-0.3.5-x86_64-disk
+${CIRROS_stable/rocky}                  cirros-0.3.5-x86_64-disk
+${CIRROS_stable/stein}                  cirros-0.4.0-x86_64-disk
+${PASSWORD_CIRROS_stable/stein}         gocubsgo
+${PASSWORD_CIRROS_stable/rocky}         cubswin:)
+${PASSWORD_CIRROS_stable/queens}        cubswin:)
+${CIRROS_master}                        cirros-0.4.0-x86_64-disk
+${DEFAULT_PING_COUNT}                   3
+${PRE_CLEAN_OPENSTACK_ALL}              False
+${EXTERNAL_NET_NAME}                    external-net
+${EXTERNAL_SUBNET_NAME}                 external-subnet
+${INTEGRATION_BRIDGE}                   br-int
+${EXTERNAL_GATEWAY}                     10.10.10.250
+${EXTERNAL_SUBNET}                      10.10.10.0/24
+${EXTERNAL_SUBNET_ALLOCATION_POOL}      start=10.10.10.2,end=10.10.10.249
+${NET1_IPV6_ADDR_POOL}                  --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2:ffff:ffff:ffff:fffe
+${NET2_IPV6_ADDR_POOL}                  --allocation-pool start=2001:db8:0:3::2,end=2001:db8:0:3:ffff:ffff:ffff:fffe
+${RESP_CODE}                            200
+${RESP_ERROR_CODE}                      400
+${MAC_REGEX}                            ([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})
+${IP_REGEX}
+...                                     (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
+${IP6_REGEX}                            (2001:([0-9A-Fa-f]{0,4}:){1,6}([0-9A-Fa-f]{1,4}))
+${IP6_SUBNET_CIDR_SUFFIX}               ::/64
+${IP6_ADDR_SUFFIX}                      (:[a-f0-9]{,4}){,4}
+${PING_REGEXP}                          , 0% packet loss
+${NO_PING_REGEXP}                       , 100% packet loss
 # Values passed for extra routes
-${RT_OPTIONS}     --route
-${RT_CLEAR}       --no-route
-${ARP_RESPONSE_REGEX}    arp,arp_op=2 actions=CONTROLLER:65535,resubmit\\(,${ELAN_BASETABLE}\\)
-${ARP_RESPONSE_REGEX_FLUORINE}    arp,arp_op=2 actions=resubmit\\(,${ARP_PUNT_TABLE}\\),resubmit\\(,${ARP_LEARN_TABLE}\\),resubmit\\(,${ELAN_BASETABLE}\\)
-${ARP_PUNT_RESPONSE_REGEX}    arp actions=CONTROLLER:65535,learn
-${ARP_REQUEST_REGEX}    arp,arp_op=1 actions=group:\\d+
-${ARP_REQUEST_GROUP_REGEX}    actions=CONTROLLER:65535,bucket=actions=resubmit\\(,${ELAN_BASETABLE}\\),bucket=actions=resubmit\\(,${ARP_RESPONSE_TABLE}\\)
-${ARP_REQUEST_GROUP_REGEX_FLUORINE}    actions=resubmit\\(,${ARP_RESPONSE_TABLE}\\)
-${ARP_CHECK_TABLE}    43
-${ARP_PUNT_TABLE}    195
-${ARP_LEARN_TABLE}    196
-${ARP_RESPONSE_TABLE}    81
+${RT_OPTIONS}                           --route
+${RT_CLEAR}                             --no-route
+${ARP_RESPONSE_REGEX}                   arp,arp_op=2 actions=CONTROLLER:65535,resubmit\\(,${ELAN_BASETABLE}\\)
+${ARP_RESPONSE_REGEX_FLUORINE}
+...                                     arp,arp_op=2 actions=resubmit\\(,${ARP_PUNT_TABLE}\\),resubmit\\(,${ARP_LEARN_TABLE}\\),resubmit\\(,${ELAN_BASETABLE}\\)
+${ARP_PUNT_RESPONSE_REGEX}              arp actions=CONTROLLER:65535,learn
+${ARP_REQUEST_REGEX}                    arp,arp_op=1 actions=group:\\d+
+${ARP_REQUEST_GROUP_REGEX}
+...                                     actions=CONTROLLER:65535,bucket=actions=resubmit\\(,${ELAN_BASETABLE}\\),bucket=actions=resubmit\\(,${ARP_RESPONSE_TABLE}\\)
+${ARP_REQUEST_GROUP_REGEX_FLUORINE}     actions=resubmit\\(,${ARP_RESPONSE_TABLE}\\)
+${ARP_CHECK_TABLE}                      43
+${ARP_PUNT_TABLE}                       195
+${ARP_LEARN_TABLE}                      196
+${ARP_RESPONSE_TABLE}                   81
 # Values passed for BFD Tunnel monitoring
-${TUNNEL_MONITOR_ON}    Tunnel Monitoring (for VXLAN tunnels): On
-${TUNNEL_MONITOR_OFF}    Tunnel Monitoring (for VXLAN tunnels): Off
-${MONITORING_INTERVAL}    Tunnel Monitoring Interval (for VXLAN tunnels)
-${INTERVAL_1000}    1000
-${TMI_1000}       :1000
-${TMI_2000}       :2000
-${TMI_20000}      :20000
-${TMI_30000}      :30000
-${TMI_31000}      :31000
-${TMI_50}         :50
-${TMI_0}          :0
-${TMI_NEG}        :-100
-${BFD}            bfd
-${LLDP}           lldp
-${TEP_SHOW}       tep:show
-${TEP_SHOW_STATE}    tep:show-state
-${VXLAN_SHOW}     vxlan:show
-${RUN_CONFIG}     show running-config
-${MONITOR_INTERVAL_NEW}    ${CONFIG_API}/itm-config:tunnel-monitor-interval/
-${INTERVAL_50}    {"tunnel-monitor-interval":{"interval":50}}
-${INTERVAL_0}     {"tunnel-monitor-interval":{"interval":0}}
-${INTERVAL_NEG}    {"tunnel-monitor-interval":{"interval":-100}}
-${INTERVAL_31000}    {"tunnel-monitor-interval":{"interval":31000}}
+${TUNNEL_MONITOR_ON}                    Tunnel Monitoring (for VXLAN tunnels): On
+${TUNNEL_MONITOR_OFF}                   Tunnel Monitoring (for VXLAN tunnels): Off
+${MONITORING_INTERVAL}                  Tunnel Monitoring Interval (for VXLAN tunnels)
+${INTERVAL_1000}                        1000
+${TMI_1000}                             :1000
+${TMI_2000}                             :2000
+${TMI_20000}                            :20000
+${TMI_30000}                            :30000
+${TMI_31000}                            :31000
+${TMI_50}                               :50
+${TMI_0}                                :0
+${TMI_NEG}                              :-100
+${BFD}                                  bfd
+${LLDP}                                 lldp
+${TEP_SHOW}                             tep:show
+${TEP_SHOW_STATE}                       tep:show-state
+${VXLAN_SHOW}                           vxlan:show
+${RUN_CONFIG}                           show running-config
+${MONITOR_INTERVAL_NEW}                 ${CONFIG_API}/itm-config:tunnel-monitor-interval/
+${INTERVAL_50}                          {"tunnel-monitor-interval":{"interval":50}}
+${INTERVAL_0}                           {"tunnel-monitor-interval":{"interval":0}}
+${INTERVAL_NEG}                         {"tunnel-monitor-interval":{"interval":-100}}
+${INTERVAL_31000}                       {"tunnel-monitor-interval":{"interval":31000}}
 #ODL Rest URLs
-${NETWORK_URL}    ${CONFIG_API}/neutron:neutron/networks
-${SUBNETWORK_URL}    ${CONFIG_API}/neutron:neutron/subnets/
-${PORT_URL}       ${CONFIG_API}/neutron:neutron/ports/
-${ROUTER_URL}     ${CONFIG_API}/neutron:neutron/routers/
-${FIB_ENTRY_URL}    ${CONFIG_API}/odl-fib:fibEntries/
-${VPN_IFACES_URL}    ${CONFIG_API}/l3vpn:vpn-interfaces/
-${VPN_INST_IFACES_URL}    ${CONFIG_API}/l3vpn-instances-interfaces:vpn-interfaces/
-${VPN_PORT_DATA_URL}    ${CONFIG_API}/neutronvpn:neutron-vpn-portip-port-data/
-${TUNNEL_MONITOR_URL}    ${OPERATIONAL_API}/itm-config:tunnel-monitor-params/
-${MONITOR_INTERVAL_URL}    ${OPERATIONAL_API}/itm-config:tunnel-monitor-interval/
-${TUNNEL_TRANSPORTZONE}    ${CONFIG_API}/itm:transport-zones
-${TUNNEL_INTERFACES}    ${CONFIG_API}/ietf-interfaces:interfaces/
-${LEARNT_VIP}     ${OPERATIONAL_API}/odl-l3vpn:learnt-vpn-vip-to-port-data/
-${DISPATCHER_TABLE}    17
-${GWMAC_TABLE}    19
-${L3_TABLE}       21
-${L3_PUNT_TABLE}    22
-${PDNAT_TABLE}    25
-${PSNAT_TABLE}    26
-${DNAT_TABLE}     27
-${SNAT_TABLE}     28
-${INTERNAL_TUNNEL_TABLE}    36
-${IPV6_TABLE}     45
-${SNAT_PUNT_TABLE}    46
-${ELAN_BASETABLE}    48
-${ELAN_SMACTABLE}    50
-${ELAN_DMACTABLE}    51
-${ELAN_UNKNOWNMACTABLE}    52
-${INGRESS_ACL_REMOTE_ACL_TABLE}    211
-${EGRESS_ACL_TABLE}    240
-${VLAN_INTERFACE_INGRESS_TABLE}    0
-${EGRESS_LPORT_DISPATCHER_TABLE}    220
-${EGRESS_LEARN_ACL_FILTER_TABLE}    244
-@{DEFAULT_FLOW_TABLES}    18    19    20    22    23    24    43
-...               45    48    50    51    60    80    81
-...               90    210    211    212    213    214    215
-...               216    217    239    240    241    242    243
-...               244    245    246    247
-${TRANSPORT_ZONE_ENDPOINT_URL}    ${CONFIG_API}/itm:transport-zones/transport-zone
-${GENIUS_VAR_DIR}    ${CURDIR}/../../variables/genius
-${TEP_NOT_HOSTED_ZONE_URL}    ${OPERATIONAL_API}/itm:not-hosted-transport-zones
+${NETWORK_URL}                          ${CONFIG_API}/neutron:neutron/networks
+${SUBNETWORK_URL}                       ${CONFIG_API}/neutron:neutron/subnets/
+${PORT_URL}                             ${CONFIG_API}/neutron:neutron/ports/
+${ROUTER_URL}                           ${CONFIG_API}/neutron:neutron/routers/
+${FIB_ENTRY_URL}                        ${CONFIG_API}/odl-fib:fibEntries/
+${VPN_IFACES_URL}                       ${CONFIG_API}/l3vpn:vpn-interfaces/
+${VPN_INST_IFACES_URL}                  ${CONFIG_API}/l3vpn-instances-interfaces:vpn-interfaces/
+${VPN_PORT_DATA_URL}                    ${CONFIG_API}/neutronvpn:neutron-vpn-portip-port-data/
+${TUNNEL_MONITOR_URL}                   ${OPERATIONAL_API}/itm-config:tunnel-monitor-params/
+${MONITOR_INTERVAL_URL}                 ${OPERATIONAL_API}/itm-config:tunnel-monitor-interval/
+${TUNNEL_TRANSPORTZONE}                 ${CONFIG_API}/itm:transport-zones
+${TUNNEL_INTERFACES}                    ${CONFIG_API}/ietf-interfaces:interfaces/
+${LEARNT_VIP}                           ${OPERATIONAL_API}/odl-l3vpn:learnt-vpn-vip-to-port-data/
+${DISPATCHER_TABLE}                     17
+${GWMAC_TABLE}                          19
+${L3_TABLE}                             21
+${L3_PUNT_TABLE}                        22
+${PDNAT_TABLE}                          25
+${PSNAT_TABLE}                          26
+${DNAT_TABLE}                           27
+${SNAT_TABLE}                           28
+${INTERNAL_TUNNEL_TABLE}                36
+${IPV6_TABLE}                           45
+${SNAT_PUNT_TABLE}                      46
+${ELAN_BASETABLE}                       48
+${ELAN_SMACTABLE}                       50
+${ELAN_DMACTABLE}                       51
+${ELAN_UNKNOWNMACTABLE}                 52
+${INGRESS_ACL_REMOTE_ACL_TABLE}         211
+${EGRESS_ACL_TABLE}                     240
+${VLAN_INTERFACE_INGRESS_TABLE}         0
+${EGRESS_LPORT_DISPATCHER_TABLE}        220
+${EGRESS_LEARN_ACL_FILTER_TABLE}        244
+@{DEFAULT_FLOW_TABLES}                  18    19    20    22    23    24    43
+...                                     45    48    50    51    60    80    81
+...                                     90    210    211    212    213    214    215
+...                                     216    217    239    240    241    242    243
+...                                     244    245    246    247
+${TRANSPORT_ZONE_ENDPOINT_URL}          ${CONFIG_API}/itm:transport-zones/transport-zone
+${GENIUS_VAR_DIR}                       ${CURDIR}/../../variables/genius
+${TEP_NOT_HOSTED_ZONE_URL}              ${OPERATIONAL_API}/itm:not-hosted-transport-zones
index fbbd90cafb8ad0a9acad5ef139ec6e7dbcab23c6..97c190e9f2ef0cc6a73c4806d82e31be7e1c1c1a 100644 (file)
@@ -1,14 +1,15 @@
 *** Settings ***
-Documentation     Resource file containing OpenFlow Plugin variables.
+Documentation       Resource file containing OpenFlow Plugin variables.
+
 
 *** Variables ***
-${RFC8040_RESTCONF_ROOT}    /rests
-${RFC8040_DATA_RESOURCE}    ${RFC8040_RESTCONF_ROOT}/data
-${RFC8040_CONFIG_CONTENT}    content=config
-${RFC8040_OPERATIONAL_CONTENT}    content=nonconfig
-${RFC8040_NODES_API}    ${RFC8040_DATA_RESOURCE}/opendaylight-inventory:nodes
-${RFC8040_CONFIG_NODES_API}    ${RFC8040_NODES_API}?${RFC8040_CONFIG_CONTENT}
-${RFC8040_OPERATIONAL_NODES_API}    ${RFC8040_NODES_API}?${RFC8040_OPERATIONAL_CONTENT}
-${RFC8040_TOPO_API}    ${RFC8040_DATA_RESOURCE}/network-topology:network-topology
-${RFC8040_OPERATIONAL_TOPO_API}    ${RFC8040_TOPO_API}?${RFC8040_OPERATIONAL_CONTENT}
-${RFC8040_OPERATIONAL_TOPO_FLOW1_API}    ${RFC8040_TOPO_API}/topology=flow%3A1?${RFC8040_OPERATIONAL_CONTENT}
+${RFC8040_RESTCONF_ROOT}                    /rests
+${RFC8040_DATA_RESOURCE}                    ${RFC8040_RESTCONF_ROOT}/data
+${RFC8040_CONFIG_CONTENT}                   content=config
+${RFC8040_OPERATIONAL_CONTENT}              content=nonconfig
+${RFC8040_NODES_API}                        ${RFC8040_DATA_RESOURCE}/opendaylight-inventory:nodes
+${RFC8040_CONFIG_NODES_API}                 ${RFC8040_NODES_API}?${RFC8040_CONFIG_CONTENT}
+${RFC8040_OPERATIONAL_NODES_API}            ${RFC8040_NODES_API}?${RFC8040_OPERATIONAL_CONTENT}
+${RFC8040_TOPO_API}                         ${RFC8040_DATA_RESOURCE}/network-topology:network-topology
+${RFC8040_OPERATIONAL_TOPO_API}             ${RFC8040_TOPO_API}?${RFC8040_OPERATIONAL_CONTENT}
+${RFC8040_OPERATIONAL_TOPO_FLOW1_API}       ${RFC8040_TOPO_API}/topology=flow%3A1?${RFC8040_OPERATIONAL_CONTENT}
index c1967402867e38a1bac3e85b0c0670260898ea10..81b8676314d83de959dbde9d373a313eaa51f715 100644 (file)
@@ -1,18 +1,19 @@
 *** Settings ***
-Documentation     Resource file containing OVSDB variables.
+Documentation       Resource file containing OVSDB variables.
+
 
 *** Variables ***
-${OVSDB_NODE_PORT}    6634
-${RFC8040_RESTCONF_ROOT}    /rests
-${RFC8040_DATA_RESOURCE}    ${RFC8040_RESTCONF_ROOT}/data
-${RFC8040_CONFIG_CONTENT}    content=config
-${RFC8040_OPERATIONAL_CONTENT}    content=nonconfig
-${RFC8040_TOPO_API}    ${RFC8040_DATA_RESOURCE}/network-topology:network-topology
-${RFC8040_CONFIG_TOPO_API}    ${RFC8040_TOPO_API}?${RFC8040_CONFIG_CONTENT}
-${RFC8040_OPERATIONAL_TOPO_API}    ${RFC8040_TOPO_API}?${RFC8040_OPERATIONAL_CONTENT}
-${RFC8040_TOPO_OVSDB1_API}    ${RFC8040_TOPO_API}/topology=ovsdb%3A1
-${RFC8040_CONFIG_TOPO_OVSDB1_API}    ${RFC8040_TOPO_OVSDB1_API}?${RFC8040_CONFIG_CONTENT}
-${RFC8040_OPERATIONAL_TOPO_OVSDB1_API}    ${RFC8040_TOPO_OVSDB1_API}?${RFC8040_OPERATIONAL_CONTENT}
-${RFC8040_SOUTHBOUND_NODE_API}    ${RFC8040_TOPO_OVSDB1_API}/node=ovsdb%3A%2F%2F
-${RFC8040_SOUTHBOUND_NODE_TOOLS_API}    ${RFC8040_SOUTHBOUND_NODE_API}${TOOLS_SYSTEM_IP}%3A${OVSDB_NODE_PORT}
-${RFC8040_SOUTHBOUND_NODE_HOST1_API}    ${RFC8040_TOPO_OVSDB1_API}/node=ovsdb%3AHOST1
+${OVSDB_NODE_PORT}                          6634
+${RFC8040_RESTCONF_ROOT}                    /rests
+${RFC8040_DATA_RESOURCE}                    ${RFC8040_RESTCONF_ROOT}/data
+${RFC8040_CONFIG_CONTENT}                   content=config
+${RFC8040_OPERATIONAL_CONTENT}              content=nonconfig
+${RFC8040_TOPO_API}                         ${RFC8040_DATA_RESOURCE}/network-topology:network-topology
+${RFC8040_CONFIG_TOPO_API}                  ${RFC8040_TOPO_API}?${RFC8040_CONFIG_CONTENT}
+${RFC8040_OPERATIONAL_TOPO_API}             ${RFC8040_TOPO_API}?${RFC8040_OPERATIONAL_CONTENT}
+${RFC8040_TOPO_OVSDB1_API}                  ${RFC8040_TOPO_API}/topology=ovsdb%3A1
+${RFC8040_CONFIG_TOPO_OVSDB1_API}           ${RFC8040_TOPO_OVSDB1_API}?${RFC8040_CONFIG_CONTENT}
+${RFC8040_OPERATIONAL_TOPO_OVSDB1_API}      ${RFC8040_TOPO_OVSDB1_API}?${RFC8040_OPERATIONAL_CONTENT}
+${RFC8040_SOUTHBOUND_NODE_API}              ${RFC8040_TOPO_OVSDB1_API}/node=ovsdb%3A%2F%2F
+${RFC8040_SOUTHBOUND_NODE_TOOLS_API}        ${RFC8040_SOUTHBOUND_NODE_API}${TOOLS_SYSTEM_IP}%3A${OVSDB_NODE_PORT}
+${RFC8040_SOUTHBOUND_NODE_HOST1_API}        ${RFC8040_TOPO_OVSDB1_API}/node=ovsdb%3AHOST1
index f4e71d0c3c5a4299f6c0ee023e5d7d7c54257d1f..b1b53b605f1729938ab4edf375c93d47b5afcb3b 100644 (file)
@@ -1,30 +1,33 @@
 *** Variables ***
 # Generic Service Function Chaining URIs
-${REST_CONFIG}    /restconf/config
-${REST_OPER}      /restconf/operational
-${OPERATIONAL_RSPS_URI}    ${REST_OPER}/rendered-service-path:rendered-service-paths
-${OPERATIONAL_RSP_URI}    ${REST_OPER}/rendered-service-path:rendered-service-paths/rendered-service-path
-${OVSDB_TOPOLOGY_URI}    ${REST_OPER}/network-topology:network-topology/topology/ovsdb:1
-${RENDERED_SERVICE_PATHS_URI}    ${REST_CONFIG}/rendered-service-path:rendered-service-paths
-${SERVICE_CHAINS_URI}    ${REST_CONFIG}/service-function-chain:service-function-chains
-${SERVICE_CHAIN_URI}    ${SERVICE_CHAINS_URI}/service-function-chain
-${SERVICE_CLASSIFIERS_URI}    ${REST_CONFIG}/service-function-classifier:service-function-classifiers
-${SERVICE_FORWARDERS_URI}    ${REST_CONFIG}/service-function-forwarder:service-function-forwarders
-${SERVICE_FORWARDER_URI}    ${SERVICE_FORWARDERS_URI}/service-function-forwarder
-${SERVICE_FUNCTIONS_URI}    ${REST_CONFIG}/service-function:service-functions
-${SERVICE_FUNCTION_URI}    ${SERVICE_FUNCTIONS_URI}/service-function
-${SERVICE_FUNCTION_ACLS_URI}    ${REST_CONFIG}/ietf-access-control-list:access-lists
-${SERVICE_FUNCTION_PATHS_STATE_URI}    ${REST_OPER}/service-function-path:service-function-paths-state
-${SERVICE_FUNCTION_PATH_STATE_URI}    ${SERVICE_FUNCTION_PATHS_STATE_URI}/service-function-path-state
-${SERVICE_FUNCTION_PATHS_URI}    ${REST_CONFIG}/service-function-path:service-function-paths
-${SERVICE_FUNCTION_PATH_URI}    ${SERVICE_FUNCTION_PATHS_URI}/service-function-path
-${SERVICE_FUNCTION_TYPES_URI}    ${REST_CONFIG}/service-function-type:service-function-types
-${SERVICE_METADATA_URI}    ${REST_CONFIG}/service-function-path-metadata:service-function-metadata
-${SERVICE_NODES_URI}    ${REST_CONFIG}/service-node:service-nodes
-${SERVICE_NODE_URI}    ${SERVICE_NODES_URI}/service-node
-${SERVICE_SCHED_TYPES_URI}    ${REST_CONFIG}/service-function-scheduler-type:service-function-scheduler-types
-${SERVICE_SCHED_TYPE_URI_BASE}    ${SERVICE_SCHED_TYPES_URI}/service-function-scheduler-type/service-function-scheduler-type:
-${SERVICE_RANDOM_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}random
-${SERVICE_LOADBALANCE_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}load-balance
-${SERVICE_ROUNDROBIN_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}round-robin
-${SERVICE_SHORTESTPATH_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}shortest-path
+${REST_CONFIG}                              /restconf/config
+${REST_OPER}                                /restconf/operational
+${OPERATIONAL_RSPS_URI}                     ${REST_OPER}/rendered-service-path:rendered-service-paths
+${OPERATIONAL_RSP_URI}
+...                                         ${REST_OPER}/rendered-service-path:rendered-service-paths/rendered-service-path
+${OVSDB_TOPOLOGY_URI}                       ${REST_OPER}/network-topology:network-topology/topology/ovsdb:1
+${RENDERED_SERVICE_PATHS_URI}               ${REST_CONFIG}/rendered-service-path:rendered-service-paths
+${SERVICE_CHAINS_URI}                       ${REST_CONFIG}/service-function-chain:service-function-chains
+${SERVICE_CHAIN_URI}                        ${SERVICE_CHAINS_URI}/service-function-chain
+${SERVICE_CLASSIFIERS_URI}                  ${REST_CONFIG}/service-function-classifier:service-function-classifiers
+${SERVICE_FORWARDERS_URI}                   ${REST_CONFIG}/service-function-forwarder:service-function-forwarders
+${SERVICE_FORWARDER_URI}                    ${SERVICE_FORWARDERS_URI}/service-function-forwarder
+${SERVICE_FUNCTIONS_URI}                    ${REST_CONFIG}/service-function:service-functions
+${SERVICE_FUNCTION_URI}                     ${SERVICE_FUNCTIONS_URI}/service-function
+${SERVICE_FUNCTION_ACLS_URI}                ${REST_CONFIG}/ietf-access-control-list:access-lists
+${SERVICE_FUNCTION_PATHS_STATE_URI}         ${REST_OPER}/service-function-path:service-function-paths-state
+${SERVICE_FUNCTION_PATH_STATE_URI}          ${SERVICE_FUNCTION_PATHS_STATE_URI}/service-function-path-state
+${SERVICE_FUNCTION_PATHS_URI}               ${REST_CONFIG}/service-function-path:service-function-paths
+${SERVICE_FUNCTION_PATH_URI}                ${SERVICE_FUNCTION_PATHS_URI}/service-function-path
+${SERVICE_FUNCTION_TYPES_URI}               ${REST_CONFIG}/service-function-type:service-function-types
+${SERVICE_METADATA_URI}                     ${REST_CONFIG}/service-function-path-metadata:service-function-metadata
+${SERVICE_NODES_URI}                        ${REST_CONFIG}/service-node:service-nodes
+${SERVICE_NODE_URI}                         ${SERVICE_NODES_URI}/service-node
+${SERVICE_SCHED_TYPES_URI}
+...                                         ${REST_CONFIG}/service-function-scheduler-type:service-function-scheduler-types
+${SERVICE_SCHED_TYPE_URI_BASE}
+...                                         ${SERVICE_SCHED_TYPES_URI}/service-function-scheduler-type/service-function-scheduler-type:
+${SERVICE_RANDOM_SCHED_TYPE_URI}            ${SERVICE_SCHED_TYPE_URI_BASE}random
+${SERVICE_LOADBALANCE_SCHED_TYPE_URI}       ${SERVICE_SCHED_TYPE_URI_BASE}load-balance
+${SERVICE_ROUNDROBIN_SCHED_TYPE_URI}        ${SERVICE_SCHED_TYPE_URI_BASE}round-robin
+${SERVICE_SHORTESTPATH_SCHED_TYPE_URI}      ${SERVICE_SCHED_TYPE_URI_BASE}shortest-path