Bringup CLI
Running the bringup CLI can be done in two ways:
Direct Execution in the Container:
Run the respective CLI command based on the fabric type directly from the container. Use one of the following commands:
docker exec -it cables_bringup bringupcli # For InfiniBand Fabric docker exec -it cables_bringup nvosbringupcli # For NVOS Fabric docker exec -it cables_bringup ethbringupcli # For Ethernet Fabric
Alternatively, it is possible to run exec bash in the container and run the appropriate CLI command based on the fabric type from anywhere within the container:
Start a bash session in the container:
docker exec -it cables_bringup
Execute the desired CLI command:
bringupcli # For InfiniBand Fabric nvosbringupcli # For NVOS Fabric ethbringupcli # For Ethernet Fabric
bringupcli may have command line arguments, see usage below for more details:
root@r-ufm65:/# <nvos|eth|>bringupcli -husage: <nvos|eth|>bringupcli \[-h\] \[-V\] \[-k\]
Optional Arguments
Argument | Description |
| Show this help message and exit |
| Show program version number and exit |
| Kill other CLI sessions if existent |
Load Topology Commands
load_topo
Description: Loads topo file if the fabric is InfiniBand and NVOS, and dot file if the fabric is Ethernet.
load_topo <filename> dns=<true
|false
> cluster=<cluster name >
Parameters:
filename
: absolute path for the topo/dot filedns
(Optional): assumes that DNS is active, and you can access the switches by hostnames by default dns=true.cluster
(Optional): cluster name, if cluster name is provided it will be set to the provided value, else it will be set to 'default'.
load_ptp
Description: Loads PTP topology file (Excel file).
load_ptp <filename> dns=<true
|false
> cluster=<cluster name> sheets=<comma separated sheets> dc_layout=<file path> hca_mapping=<file path>
Parameters:
filename
: The absolute path for the P2P file.dns
(Optional): Assumes that DNS is active, and you can access the switches by hostnames by defaultdns=true
.cluster
(Optional): Cluster name, if cluster name is provided it will be set to the provided value, else it will be set to 'default'.sheets
(Optional): comma separated sheets name. If provided, only the specified sheets from the Excel file are loaded. If not provided, all sheets in the file are loaded.dc_layout
(Optional, Ethernet Fabric Only): A CSV file that describes the data center layout, for more information please find DC Floor Layout File.hca_mapping
(Optional, InfiniBand and NVOS Fabrics Only): A CSV file that defines the relationship between port numbers and HCA names, for more information please find HCA Mapping File.
load_ip
Description: Loads switch IP addresses, can be used if DNS is inactive.
load_ip <filename> cluster=<cluster name >
Loads the IP/switch-name mapping, to allow reaching the switch via REST API to retrieve local topology, GUID, etc. The file format is pairs of IP addresses and hostname. This file will be used in association with a 'topo' file in case DNS is unavailable.
An IP file example:
A comment
10.0
.30
switch1
10.0
.0.31
switch2
Parameters:
filename
: The absolute path for the IP file.cluster
(Optional): The cluster name, if cluster name is provided it will be set to the provided value, else it will be set to 'default'.
load
Description: Loads both IP addresses and topo files.
load <topo filename> <ip filename> cluster=<cluster name>
Loads the .topo and .ip files.
Note: if you have multiple files describing a topology, use the commands:
load_ip file.ip
load_topo file1.topo file2.topo file3.topo
Parameters:
topo filename
: The absolute path for the topology file directoryip filename
: The absolute path for the IP file directorycluster
(Optional): The cluster name, if cluster name is provided it will be set to the provided value, else it will be set to 'default'.
load_clusters
Clusters file should have the following format, where topo file should be in xlsx format and the IP file is optional.
load_clusters <filename> dns=true
|false
cluster_name, topo_file, ip_file
CLUSTER1, cluster1_topo.xlsx, cluster1.ip
CLUSTER2, cluster2_topo.xlsx,
Parameters:
filename
: The absolute path for the cluster filedns
(optional): Assumes that DNS is active, and you can access the switches by hostnames by default dns=true.
Validations Commands
show_clusters
Description: Show list of loaded clusters as loaded from the clusters file.
show_clusters
show_switches
Description: Show list of loaded switches as loaded from the topology file
show_switches cluster=<cluster_name>
Parameters:
cluster
(Optional): cluster name, If the cluster name is provided, show the switch in the given cluster only.
Output Example:
MQM8700 sw-hdr-proton01
-----------------------
MQM8700 sw-hdr-proton01 P3 --> swx-proton03 mlx5_0 P1
MQM8700 sw-hdr-proton01 P4 --> swx-proton04 mlx5_2 P1
MQM8700 ufm-sw-hdr01
--------------------
MQM8700 ufm-sw-hdr01 P1 --> ufm-sw-hdr02 P1
MQM8700 ufm-sw-hdr02
--------------------
MQM8700 ufm-sw-hdr02 P1 --> ufm-sw-hdr01 P1
check_switch_status
Description: Check switch connectivity status (Ping/JSON-API/Agent )
check_switch_status cluster=<cluster name >
Parameters:
cluster
(Optional): cluster name, If the cluster is provided, the check will be done for the switches in the provided cluster only.
Output Example:
Host IP ping JSONAPI Agent
----------------------------- ------------- ---- ---- -----
sw-hdr-proton01.mtr.labs.mlnx 209.44
.74
True True True
ufm-sw-hdr01.mtr.labs.mlnx 10.209
.36.113
True True True
ufm-sw-hdr02.mtr.labs.mlnx 10.209
.36.122
True True True
start_validation
Description: Push topology to switches and get validation reports.
start_validation timeout=<n> cluster=<cluster_name>
Parameters:
cluster
(Optional): cluster name, If the cluster is provided, the validation will be started in the switches in the provided cluster only.timeout
(Optional): timeout in which validation stops, n is in seconds (s), minutes (m), hours (h) or days (d). For example timeout=20m or timeout=2h.
If timeout is not provided, use the stop_validation
command to stop it.
stop_validation
Description: Stops validation routine. Unsubscribe from getting switches updates.
stop_validation
Troubleshooting
Description | Example | |
deploy_single_agent | Deploys agent on a specific switch |
|
deploy_all_agents | Deploys agents on loaded switches that have no agents. |
|
remove_all_agents | Removes agents from loaded switches that have agents. |
|
remove_single_agent | Removes an agent from a specific switch |
|
Set Credentials Commands
set_default_creds
Description: Sets the default switch/host credentials to override the built-in default credentials.
set_default_creds user=<user> pwd=<pwd> type=<switch
|host> save=<true
|false
>
These credentials are used for communication with any switch that does not have specific credentials.
Parameters:
user
: user name.pwd
: password.type
(Optional): the default value is switchsave
(Optional): If save it set to true (default: true), credentials will be saved encrypted to a file
set_node_creds
Description: Sets the credentials for a specific switch/host, it can be used when the switch credentials are different than the defaults.
set_node_creds <switch
> user=<user> pwd=<pwd> save=true
|false
Parameters:
switch
: switch nameuser
: user name.pwd
: password.save
(Optional): If save it set to true (default: true), credentials will be saved encrypted to a file
Web User Commands
add_web_login
Description: Add new users to login to the web gui apart from the default 'admin' login.
add_web_login user=<user> pwd=<pwd> account_type=<account_type>
Parameters:
user
: usernamepwd
: passwordaccount_type
: Account_type can be cabler, admin, nvidia, or developer
delete_web_user
Description: Delete a web user account.
delete_web_user user=<user>
Parameters:
user
: username.
show_web_users
Description: Shows the web users added along with their account types.
show_web_users
Example output:
admin: admin
nUser: nvidia
dUser: developer
update_web_user
Description: Update the specified web user, allowing changes to the password, account type, or both.
update_web_user user=<user> pwd=<pwd> account_type=<account_type>
Parameters:
user
: usernamepwd
: passwordaccount_type
: Account_type can be cabler, admin, nvidia, or developer
Other Commands
show_switch_history
Description: Lists data files collected from switches in the last days
show_switch_history <switch
names> past=<n> start_time=<n> end_time=<n> prev=<n>
Parameters:
switch_names
(Optional): a space delimited switch names, if no switches are provided, it will bring data of all switchespast
(Optional): Past argument can be used to specify the history interval, by default it is set to one week past=1w.start_time
,end_time
(Optional): time period to look for data, if no time is provided, data of the last week will be providedprev
(Optional): retrieve data during the previous period from specified time to now.'prev' formats: num[day|week]
amber_show_latest
Description: Shows latest collected amber data from switches
amber_show_latest
show_incoming_reports
Description: show or hide incoming reports
show_incoming_reports show=true
/false
Parameters:
show
(Optional): the default value is true
show_statistics
Description: Shows a summary for all issues
show_statistics
2024
-11
-21
12
:58
:46.726351
- show statistics for
default
cluster:
Status Number of occurrences Nodes affected
------------------------------------ --------------------- --------------
No Transceiver 0
0
Link Down, No signal 0
0
Admin Down 0
0
ErrDisable - Flap 0
0
ErrDisable - Rx 0
0
Negotiation fail 0
0
Wrong-neighbor 0
0
Wrong-port 0
0
Unknown-neighbor 0
0
Extra-cable 0
0
Underperforming-link (BER) 0
0
Flapping-link 0
0
Anomalous-port (Signal, Temperature) 0
0
Unreachable-device 0
0
Correctly-wired 0
No report
show_switches
Description: Shows the current loaded switches
show_switches
Example output:
MQM8700 sw-hdr-proton01, rack: PXX, unit: 30
--------------------------------------------
MQM8700 sw-hdr-proton01 P3 --> swx-proton03 mlx5_0 P1
MQM8700 sw-hdr-proton01 P4 --> swx-proton04 mlx5_2 P1
add_certificate
Description: Updates the SSL certificate file used by Apache for secure connections
add_certificate <crt file> <key_file>
The provided file should be a valid SSL certificate file in crt format. The old certificate file will be backed up before replacing it with the new one.
version
Description: Shows application version.
exit
Description: Exits the application.
help
Description: Shows a list of commands. For help on a specific command, run help <command>
To initialize the tool, perform the following:
Open bringup GUI
Load the fabric topology file using one of the Load Topology Commands or from the bringup GUI
Set the credentials for the switches.
Deploy the agent on all switches.
Notewget should be installed on the switches and hosts as it is used to download the agent image from the collector
Start validation using GUI or using the Validation Command.
Open the following URL in the browser: https://<bringup_machine_ip>/cables_validation
Enter credentials in the login page.
You may change the default self signed certificate located by default in the container at:
SSLCertificateFile ${BRINGUP_CONF_APACHE_PATH}/certs/cv-cert.crt SSLCertificateKeyFile ${BRINGUP_CONF_APACHE_PATH}/
private
/cv-cert.key