blob: 1e83f339b96e351a0e7dba0aa4b043cb5c128ce5 [file] [log] [blame]
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# onos common functions
*** Settings ***
Documentation Library for ONOS Functions
Library SSHLibrary
*** Keywords ***
Execute ONOS CLI Command
[Documentation] Establishes an ssh connection to ONOS contoller and executes a command
[Arguments] ${host} ${port} ${cmd} ${user}=karaf ${pass}=karaf
${conn_id}= SSHLibrary.Open Connection ${host} port=${port} timeout=300s
SSHLibrary.Login ${user} ${pass}
@{result_values} SSHLibrary.Execute Command ${cmd} return_rc=True
... return_stderr=True return_stdout=True
${output} Set Variable @{result_values}[0]
Log ${output}
Should Be Empty @{result_values}[1]
Should Be Equal As Integers @{result_values}[2] 0
SSHLibrary.Close Connection
[Return] ${output}
Validate XConnect in ONOS
[Documentation] Check if Fabric Crossconnnect matches exists value
[Arguments] ${server_ip} ${stag} ${exists}=True ${port}=30120
# FIXME: use Robot-based JSON manipulation, shorten line
${rc}= Run And Return RC
... http -a karaf:karaf GET http://${server_ip}:${port}/onos/segmentrouting/xconnect|jq -r '.xconnects[].vlanId'|grep ${stag}
Run Keyword If '${exists}' == 'True'
... Should Be Equal As Integers ${rc} 0
... ELSE
... Should Be Equal As Integers ${rc} 1
Get ONOS Status
[Documentation] Obtain and log output of ONOS diagnostic commands
[Arguments] ${server_ip}=${None} ${server_port}=30115
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_apps.log apps -a -s
... host=${server_ip} port=${server_port}
${onos_apps} Get Binary File /tmp/onos_apps.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_devices.log devices
... host=${server_ip} port=${server_port}
${onos_devices} Get Binary File /tmp/onos_devices.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_ports.log ports
... host=${server_ip} port=${server_port}
${onos_ports} Get Binary File /tmp/onos_ports.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_flows.log flows -s
... host=${server_ip} port=${server_port}
${onos_flows} Get Binary File /tmp/onos_flows.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_meters.log meters
... host=${server_ip} port=${server_port}
${onos_meters} Get Binary File /tmp/onos_meters.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_volt_prog_subscribers.log volt-programmed-subscribers
... host=${server_ip} port=${server_port}
${onos_volt_prog_subscribers} Get Binary File /tmp/onos_volt_prog_subscribers.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_volt_prog_meters.log volt-programmed-meters
... host=${server_ip} port=${server_port}
${onos_volt_prog_meters} Get Binary File /tmp/onos_volt_prog_meters.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_volt_bp_meters.log volt-bpmeter-mappings
... host=${server_ip} port=${server_port}
${onos_volt_bp_meters} Get Binary File /tmp/onos_volt_bp_meters.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_dhcpl2.log dhcpl2relay-allocations
... host=${server_ip} port=${server_port}
${onos_dhcpl2} Get Binary File /tmp/onos_dhcpl2.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_aaa_users.log aaa-users
... host=${server_ip} port=${server_port}
${onos_aaa_users} Get Binary File /tmp/onos_aaa_users.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_netcfg.log netcfg
... host=${server_ip} port=${server_port}
${onos_netcfg} Get Binary File /tmp/onos_netcfg.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_groups.log groups
... host=${server_ip} port=${server_port}
${onos_groups} Get Binary File /tmp/onos_groups.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_hosts.log hosts
... host=${server_ip} port=${server_port}
${onos_hosts} Get Binary File /tmp/onos_hosts.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_links.log links
... host=${server_ip} port=${server_port}
${onos_links} Get Binary File /tmp/onos_links.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_roles.log roles
... host=${server_ip} port=${server_port}
${onos_roles} Get Binary File /tmp/onos_roles.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_dhcpl2relay_stats.log dhcpl2relay-stats
... host=${server_ip} port=${server_port}
${onos_dhcpl2relay_stats} Get Binary File /tmp/onos_dhcpl2relay_stats.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_aaa_stats.log aaa-statistics
... host=${server_ip} port=${server_port}
${onos_aaa_stats} Get Binary File /tmp/onos_aaa_stats.log
CORDRobot.write_log_of_onos_cli_command /tmp
... onos_cfg_settings.log cfg get
... host=${server_ip} port=${server_port}
${onos_cfg_settings} Get Binary File /tmp/onos_cfg_settings.log
Log ${onos_apps}
Log ${onos_devices}
Log ${onos_ports}
Log ${onos_flows}
Log ${onos_meters}
Log ${onos_aaa_users}
Log ${onos_volt_prog_subscribers}
Log ${onos_volt_prog_meters}
Log ${onos_volt_bp_meters}
Log ${onos_hosts}
Log ${onos_dhcpl2}
Log ${onos_netcfg}
Log ${onos_groups}
Log ${onos_links}
Log ${onos_roles}
Log ${onos_dhcpl2relay_stats}
Log ${onos_aaa_stats}
Log ${onos_cfg_settings}