Model-2 Plugin
The Model2 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 Model2 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 Model2 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
Download the model2 image from the NVIDIA License Portal (NLP).
Load the downloaded image onto the UFM server. This can be done either by using the UFM GUI by navigating to the Settings -> Plugins Management tab or by loading the image via the following instructions:
Log in to the UFM server terminal.
Run:
docker load -I <path_to_image>
After successfully loading the plugin image, the plugin should become visible within the plugin management table within the UFM GUI. To initiate the plugin’s execution, simply right-click on the respective in the table.
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 /resources/ports
GET /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 /resources/ports/?cable_info=true
part_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 /resources/links
source_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 /resources/systems
GET /resources/systems/<system_name>
GET /resources/switches
name: 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.
The following SHARP Reservation APIs are supported and their input and description can be found in the UFM REST API manual
POST /app/sharp/reservation
DELETE /app/sharp/reservation
GET /app/sharp/jobs
GET /app/sharp/jobs/<job_id>