Fast-API Plugin
The Fast-API plugin is a new component that runs in parallel to the UFM model and provides a more scalable and efficient way to manage the inventory and topology of the fabric. It uses a Redis database to store the data it receives from the SM client consumer and the ibdiagnet collector. It also exposes REST APIs for querying the ports, systems, links, switches, and sharp reservations. The Fast-API plugin also supports persistent inventory, which means it keeps track of all the devices, ports, and links the UFM ever encountered, even if they are disabled or removed. The Fast-API plugin is designed to be backward compatible with the UFM model, except for some minor differences in the API parameters and the handling of generic node names
As a first step, get the Fast API image:
docker pull mellanox/ufm-plugin-fast_api
Load the downloaded image onto the UFM server. To do this, use the UFM GUI and navigate to the Settings -> Plugins Management tab.
After running the plugin successfully. You should be able to see the Fast-API items under the main UFM navigation menu.
The following APIs are supported:
Ports API - Retrieve all the ports in the cluster or filter by the system name. The following attributes are retrieved:
GET https://
/ufmRestV2/plugin/fast_api /resources/portsGET /resources/ports/ - deviceID referred as sys_guid for switches and hostname for hosts
name: The name of the port.
lid: The local ID of the port.
logical_state: The logical state of the port.
physical_state: The physical state of the port.
number: The number of the port.
decimal_guid: The decimal GUID of the port.
mtu: The maximum transmission unit of the port.
active_speed: The active speed of the port.
active_width: The active width of the port.
peer_address: The peer address of the port.
peer_port: The peer port of the port.
tier: The tier of the port.
label: The label of the port.
This API retrieves all the ports in the cluster, including cable information. The following attributes are supported for cable information:
GET https://
/ufmRestV2/plugin/fast_api /resources/ports/?cable_info=truepart_number: The part number of the port.
serial_number: The serial number of the port.
revision: The revision of the port.
identifier: The identifier of the port.
length: The length of the port.
technology: The technology of the port.
fw_version: The firmware version of the port.
Links API - Retrieve all the links in the cluster. The following attributes are retrieved:
GET https://
/ufmRestV2/plugin/fast_api /resources/linkssource_guid: The GUID of the source port.
source_port: The source port.
destination_guid: The GUID of the destination port.
destination_port: The destination port.
source_port_dname: The display name of the source port.
source_port_name: The name of the source port.
destination_port_dname: The display name of the destination port.
destination_port_name: The name of the destination port.
width: The width of the link.
severity: The severity of the link.
source_port_node_description: The description of the node connected to the source port.
destination_port_node_description: The description of the node connected to the destination port.
name: The name of the link.
active: The status of the link.
This API retrieves information about the systems in the cluster. It can retrieve all the systems or filter by the system name. The following attributes are retrieved:
GET https://
/ufmRestV2/plugin/fast_api /resources/systemsGET https://
/ufmRestV2/plugin/fast_api /resources/systems/<system_name>GET https://
/ufmRestV2/plugin/fast_api /resources/switchesname: The display name of the system.
system_name: The name of the system.
guid: The GUID of the system.
sys_guid: The system GUID.
ports: A list of ports associated with the system.
hostname: The hostname of the system.
vendor: The vendor of the system.
temperature: The temperature of the system.
fw_version: The firmware version of the system.
technology: The technology used by the system.
level: The level of the system.
uptime: The uptime of the system.
sw_version: The software version of the system.
system_type: The type of the system.
description: The description of the system.
psid: The PSID of the system.
active: The status of the system.
state: The state of the system.
is_managed: Indicates whether the system is managed.