Code Review
/
csit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Bash functions style cleanup
[csit.git]
/
resources
/
libraries
/
bash
/
function
/
device.sh
diff --git
a/resources/libraries/bash/function/device.sh
b/resources/libraries/bash/function/device.sh
index
0b1a090
..
0eda008
100644
(file)
--- a/
resources/libraries/bash/function/device.sh
+++ b/
resources/libraries/bash/function/device.sh
@@
-14,9
+14,11
@@
set -exuo pipefail
# This library defines functions used by multiple entry scripts.
set -exuo pipefail
# This library defines functions used by multiple entry scripts.
+# Deliberately not depending on common.sh to allow standalone usage.
# Keep functions ordered alphabetically, please.
function activate_wrapper () {
# Keep functions ordered alphabetically, please.
function activate_wrapper () {
+
# Acts as wrapper for activate docker topology.
#
# Variables read:
# Acts as wrapper for activate docker topology.
#
# Variables read:
@@
-37,6
+39,7
@@
function activate_wrapper () {
function bind_interfaces_to_containers () {
function bind_interfaces_to_containers () {
+
# Bind linux network interface to container and create symlink for PCI
# address in container.
#
# Bind linux network interface to container and create symlink for PCI
# address in container.
#
@@
-83,6
+86,7
@@
function bind_interfaces_to_containers () {
function bind_interfaces_to_driver () {
function bind_interfaces_to_driver () {
+
# Bind network interface specified by parameter to driver specified by
# parameter.
#
# Bind network interface specified by parameter to driver specified by
# parameter.
#
@@
-90,9
+94,11
@@
function bind_interfaces_to_driver () {
# - ADDR - PCI address of network interface.
# - DRIVER - Kernel driver.
# - ADDR - PCI address of network interface.
# - DRIVER - Kernel driver.
+ set -exuo pipefail
+
pci_path="/sys/bus/pci/devices/${ADDR}"
drv_path="/sys/bus/pci/drivers/${DRIVER}"
pci_path="/sys/bus/pci/devices/${ADDR}"
drv_path="/sys/bus/pci/drivers/${DRIVER}"
- vd=
"$(cat ${pci_path}/vendor ${pci_path}/device)"
|| {
+ vd=
$(cat ${pci_path}/vendor ${pci_path}/device)
|| {
die "Failed to retrieve interface details!"
}
set +e
die "Failed to retrieve interface details!"
}
set +e
@@
-108,6
+114,7
@@
function bind_interfaces_to_driver () {
function clean_environment () {
function clean_environment () {
+
# Cleanup environment by removing topology containers and shared volumes
# and binding interfaces back to original driver.
#
# Cleanup environment by removing topology containers and shared volumes
# and binding interfaces back to original driver.
#
@@
-143,10
+150,13
@@
function clean_environment () {
function clean_environment_on_exit () {
function clean_environment_on_exit () {
+
# Cleanup environment by removing topology containers and binding
# interfaces back to original driver only if exit code is not 0.
# This function acts as workaround as 'set -eu' does not trigger ERR trap.
# Cleanup environment by removing topology containers and binding
# interfaces back to original driver only if exit code is not 0.
# This function acts as workaround as 'set -eu' does not trigger ERR trap.
+ set -exuo pipefail
+
if [ $? -ne 0 ]; then
clean_environment || die
fi
if [ $? -ne 0 ]; then
clean_environment || die
fi
@@
-154,6
+164,7
@@
function clean_environment_on_exit () {
function deactivate_wrapper () {
function deactivate_wrapper () {
+
# Acts as wrapper for deactivate docker topology.
#
# Variables read:
# Acts as wrapper for deactivate docker topology.
#
# Variables read:
@@
-169,9
+180,12
@@
function deactivate_wrapper () {
function die () {
function die () {
+
# Print the message to standard error end exit with error code specified
# by the second argument.
#
# Print the message to standard error end exit with error code specified
# by the second argument.
#
+ # Duplicate of common.sh function, as this file is also used standalone.
+ #
# Hardcoded values:
# - The default error message.
# Arguments:
# Hardcoded values:
# - The default error message.
# Arguments:
@@
-186,6
+200,7
@@
function die () {
function enter_mutex () {
function enter_mutex () {
+
# Enter mutual exclusion for protecting execution from starvation and
# deadlock.
# Enter mutual exclusion for protecting execution from starvation and
# deadlock.
@@
-208,6
+223,7
@@
function enter_mutex () {
function exit_mutex () {
function exit_mutex () {
+
# Exit mutual exclusion.
set -exuo pipefail
# Exit mutual exclusion.
set -exuo pipefail
@@
-222,11
+238,12
@@
function exit_mutex () {
function get_available_interfaces () {
function get_available_interfaces () {
+
# Find and get available Virtual functions.
#
# Arguments:
# Find and get available Virtual functions.
#
# Arguments:
- # - ${1} - Node
flavor string, usually describing the processor and node
- #
multiplicity of desired testbed, separated by underscor
e.
+ # - ${1} - Node
ness, as set by common.sh get_test_code.
+ #
- ${2} - Flavor, as set by common.sh get_test_cod
e.
# Variables set:
# - DUT1_NETDEVS - List of network devices allocated to DUT1 container.
# - DUT1_PCIDEVS - List of PCI addresses allocated to DUT1 container.
# Variables set:
# - DUT1_NETDEVS - List of network devices allocated to DUT1 container.
# - DUT1_PCIDEVS - List of PCI addresses allocated to DUT1 container.
@@
-347,6
+364,7
@@
function get_available_interfaces () {
function get_krn_driver () {
function get_krn_driver () {
+
# Get kernel driver from linux network device name.
#
# Variables read:
# Get kernel driver from linux network device name.
#
# Variables read:
@@
-364,6
+382,7
@@
function get_krn_driver () {
function get_mac_addr () {
function get_mac_addr () {
+
# Get MAC address from linux network device name.
#
# Variables read:
# Get MAC address from linux network device name.
#
# Variables read:
@@
-382,6
+401,7
@@
function get_mac_addr () {
function get_pci_addr () {
function get_pci_addr () {
+
# Get PCI address in <domain>:<bus:<device>.<func> format from linux network
# device name.
#
# Get PCI address in <domain>:<bus:<device>.<func> format from linux network
# device name.
#
@@
-405,34
+425,41
@@
function get_pci_addr () {
function installed () {
function installed () {
- set -exuo pipefail
-
# Check if the given utility is installed. Fail if not installed.
#
# Check if the given utility is installed. Fail if not installed.
#
+ # Duplicate of common.sh function, as this file is also used standalone.
+ #
# Arguments:
# - ${1} - Utility to check.
# Returns:
# - 0 - If command is installed.
# - 1 - If command is not installed.
# Arguments:
# - ${1} - Utility to check.
# Returns:
# - 0 - If command is installed.
# - 1 - If command is not installed.
+ set -exuo pipefail
+
command -v "${1}"
}
function print_env_variables () {
command -v "${1}"
}
function print_env_variables () {
+
# Get environment variables prefixed by CSIT_.
set -exuo pipefail
# Get environment variables prefixed by CSIT_.
set -exuo pipefail
- env | grep CSIT_
+ env | grep CSIT_
|| true
}
function read_env_variables () {
}
function read_env_variables () {
+
# Read environment variables from parameters.
#
# Arguments:
# - ${@} - Variables passed as an argument.
# Read environment variables from parameters.
#
# Arguments:
# - ${@} - Variables passed as an argument.
+ # Variables read, set or exported: Multiple,
+ # see the code for the current list.
+ # TODO: Do we need to list them and their meanings?
set -exuo pipefail
set -exuo pipefail
@@
-454,6
+481,7
@@
function read_env_variables () {
function set_env_variables () {
function set_env_variables () {
+
# Set environment variables.
#
# Variables read:
# Set environment variables.
#
# Variables read:
@@
-465,6
+493,7
@@
function set_env_variables () {
# - TG_NETMACS - List of network devices MAC addresses of TG container.
# - TG_PCIDEVS - List of PCI addresses of devices of TG container.
# - TG_DRIVERS - List of interface drivers to TG container.
# - TG_NETMACS - List of network devices MAC addresses of TG container.
# - TG_PCIDEVS - List of PCI addresses of devices of TG container.
# - TG_DRIVERS - List of interface drivers to TG container.
+ # Variables set: TODO.
set -exuo pipefail
set -exuo pipefail
@@
-502,6
+531,7
@@
function set_env_variables () {
function start_topology_containers () {
function start_topology_containers () {
+
# Starts csit-sut-dcr docker containers for TG/DUT1.
#
# Variables read:
# Starts csit-sut-dcr docker containers for TG/DUT1.
#
# Variables read:
@@
-551,11
+581,11
@@
function start_topology_containers () {
# Run TG and DUT1. As initial version we do support only 2-node.
params=(${dcr_stc_params} --name csit-tg-$(uuidgen) ${dcr_image})
# Run TG and DUT1. As initial version we do support only 2-node.
params=(${dcr_stc_params} --name csit-tg-$(uuidgen) ${dcr_image})
- DCR_UUIDS+=([tg]=
"$(docker run "${params[@]}")"
) || {
+ DCR_UUIDS+=([tg]=
$(docker run "${params[@]}")
) || {
die "Failed to start TG docker container!"
}
params=(${dcr_stc_params} --name csit-dut1-$(uuidgen) ${dcr_image})
die "Failed to start TG docker container!"
}
params=(${dcr_stc_params} --name csit-dut1-$(uuidgen) ${dcr_image})
- DCR_UUIDS+=([dut1]=
"$(docker run "${params[@]}")"
) || {
+ DCR_UUIDS+=([dut1]=
$(docker run "${params[@]}")
) || {
die "Failed to start DUT1 docker container!"
}
die "Failed to start DUT1 docker container!"
}
@@
-565,21
+595,21
@@
function start_topology_containers () {
# Get Containers TCP ports.
params=(${DCR_UUIDS[tg]})
# Get Containers TCP ports.
params=(${DCR_UUIDS[tg]})
- DCR_PORTS+=([tg]=
"$(docker port "${params[@]}")"
) || {
+ DCR_PORTS+=([tg]=
$(docker port "${params[@]}")
) || {
die "Failed to get port of TG docker container!"
}
params=(${DCR_UUIDS[dut1]})
die "Failed to get port of TG docker container!"
}
params=(${DCR_UUIDS[dut1]})
- DCR_PORTS+=([dut1]=
"$(docker port "${params[@]}")"
) || {
+ DCR_PORTS+=([dut1]=
$(docker port "${params[@]}")
) || {
die "Failed to get port of DUT1 docker container!"
}
# Get Containers PIDs.
params=(--format="{{ .State.Pid }}" ${DCR_UUIDS[tg]})
die "Failed to get port of DUT1 docker container!"
}
# Get Containers PIDs.
params=(--format="{{ .State.Pid }}" ${DCR_UUIDS[tg]})
- DCR_CPIDS+=([tg]=
"$(docker inspect "${params[@]}")"
) || {
+ DCR_CPIDS+=([tg]=
$(docker inspect "${params[@]}")
) || {
die "Failed to get PID of TG docker container!"
}
params=(--format="{{ .State.Pid }}" ${DCR_UUIDS[dut1]})
die "Failed to get PID of TG docker container!"
}
params=(--format="{{ .State.Pid }}" ${DCR_UUIDS[dut1]})
- DCR_CPIDS+=([dut1]=
"$(docker inspect "${params[@]}")"
) || {
+ DCR_CPIDS+=([dut1]=
$(docker inspect "${params[@]}")
) || {
die "Failed to get PID of DUT1 docker container!"
}
}
die "Failed to get PID of DUT1 docker container!"
}
}
@@
-587,8
+617,12
@@
function start_topology_containers () {
function warn () {
# Print the message to standard error.
#
function warn () {
# Print the message to standard error.
#
+ # Duplicate of common.sh function, as this file is also used standalone.
+ #
# Arguments:
# - ${@} - The text of the message.
# Arguments:
# - ${@} - The text of the message.
+ set -exuo pipefail
+
echo "$@" >&2
}
echo "$@" >&2
}