NVIDIA SHARP Resource Allocation REST API
SHARPv2 must be running (enable_SHARP = true) and the NVIDIA Scalable Hierarchical Aggregation and Reduction Protocol (SHARP)™ allocation parameter must be enabled (enable_SHARP_alloction = true) for this API to trigger resource (GUID) allocations and deallocations within SHARP.
Description – Configures NVIDIA SHARP allocations (reservations)
Request URL – GET /ufmRest/app/SHARP/allocate_resources
Main Operations
Get All Reservations
Description – Retrieves all SHARP reservations
Request URL – GET /ufmRest/ app/SHARP/allocate_reseources
Request Content Type – Application/json
Response
{ "anas1":{ "pkey":"0x12", "guids":["0x248a0703008a850a", "0x248a0703008a850b"] }, "anas2":{ "pkey":"0x12", "guids": ["0xf452140300383a01", "0xf452140300383a02"] } }
Status Codes
200 – OK
400 – BAD_REQUEST
Description – Gets specific SHARP reservation by app_id
Request URL – GET /ufmRest/app/SHARP/allocate_resources/<app_id>
Request Content Type – Application/json
Status Codes
200 – OK
400 – BAD_REQUEST
404 – NOT_FOUND
{
"anas1":{
"pkey": "0x12",
"guids": ["0x248a0703008a850a", "0x248a0703008a850b"]
}
}
The following API is replacing the deprecated SHARP API presented in earlier versions of this UFM Enterprise REST API Guide.
Description – Creates a new SHARP reservation. If the partial allocation parameter is set to false, the SHARP allocation request will not succeed in the event that even a single node is absent in the fabric. By default, this parameter is set to true.
Request URL – POST /app/sharp/resources?partially_alloc=false
Request Content-Type – Application/json
Status Codes
202 – ACCEPTED (if all nodes were added successfully to created allocation)
206 – PARTIAL (if not all nodes were added to created allocation because they are not found in the fabric.)
400 – BAD_REQUEST
Request Data
Name
Value
Default
Description
Mandatory/Optional
App_id
String
None
"0x7fff" (This is the default management pkey) Application id.
It is also the identifier of this nodes allocation
Mandatory
App_resources_limit
Integer
-1
Application resources limitation
Optional
Hosts_names
String
None
A string of hosts names separated by a comma, to be added to sharp allocation.
Example:
"r-ufm77,r-ufm51"
Optional
Port_guids
list
None
List of ports guids Example:
["f452140300383a01", "f452140300383a02"]
Optional
pkey
Hexadecimal string between "0x0001"-"0x7ffe" exclusive
"0x7fff" (This is the default management pkey)
Created network PKey to be used by Sharp
Optional
Examples:
Create SHARP allocation by sending hosts_names:
{
"app_id"
:"99"
,"hosts_names"
:"r-ufm51,r-ufm55"
,"pkey"
:"0x12"
,"app_resources_limit"
: -1
}Create SHARP allocation by sending port_guids:
{
"app_id"
:"99"
,"port_guids"
: ["f452140300383a01"
,"f452140300383a02"
],"pkey"
:"0x12"
,"app_resources_limit"
: -1
}
The following API is replacing the deprecated SHARP API presented in earlier versions of the UFM Enterprise REST API Guide.
Description - Deletes SHARP Allocation
Request URL - DELETE /app/sharp/resources/<app_id>
Request Content-Type – Application/json
Status Codes
200 – OK
400 – BAD_REQUEST
The following API is replacing the deprecated SHARP API presented in earlier versions of this UFM Enterprise REST API Guide.
Description - Updates SHARP Allocation. If the partial allocation parameter is set to false, the SHARP allocation request will not succeed in the event that even a single node is absent in the fabric. By default, this parameter is set to true.
Request URL: PUT /app/sharp/resources/<app_id>
Request Content-Type – Application/json
Status Codes
202 – ACCEPTED
206 - PARTIAL
400 – BAD_REQUEST
Body Examples:
Update SHARP allocation by sending hosts_names:
{
"hosts_names"
:"r-ufm51,r-ufm77"
}Update SHARP allocation by sending port_guids:
{
"hosts_names"
:["f452140300383a01"
,"f452140300383a02"
] }
Description – Retrieves all active SHARP jobs.
Request URL – GET /app/sharp/resources/jobs
Request Content Type – Application/json
Status Codes
200 – OK
Response
{
"99:58"
:{"job_id"
:58
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } } } },"reservation_key"
:"99"
},"99:74"
:{"job_id"
:74
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } },"reservation_key"
:"99"
} } } }
Description – Retrieves specific active SHARP jobs with specific a reservation_id
Request URL – GET /app/sharp/resources/jobs/<job_id>?reservation_id=<reservation_id>
Request Content Type – Application/json
Status Codes
200 – OK
404 – NOT_FOUND
Response
{
"99:58"
:{"job_id"
:58
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } } } },"reservation_key"
:"99"
} }
Description – Retrieves all active SHARP jobs using non blocking SHARP API
Request URL – GET /app/sharp/resources/jobs_nb
Request Content Type – Application/json
Status Codes
200 – OK
Response – the HTTP response location header contains a URL with job ID created for running the action. Example:
{
"ID"
:"1"
,"Status"
:"Completed"
,"Progress"
:100
,"Description"
:"Get sharp jobs"
,"Created"
:"2023-05-03 09:48:35"
,"LastUpdated"
:"2023-05-03 09:48:35"
,"Summary"
: {"99:58"
:{"job_id"
:58
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } } } },"reservation_key"
:"99"
},"99:74"
:{"job_id"
:74
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } },"reservation_key"
:"99"
} } } },"RelatedObjects"
:[],"CreatedBy"
:"admin"
,"Operation"
:"Get sharp jobs"
,"Foreground"
:true
,"SiteName"
:""
}
Description – Retrieves specific active SHARP jobs with specific reservation_id using non blocking SHARP API
Request URL – GET /app/sharp/resources/jobs_nb/<job_id>?reservation_id=<reservation_id>
Request Content Type – Application/json
Status Codes
200 – OK
404 – NOT_FOUND
Response – the HTTP Response location header contains a URL with job ID created for running the action. Example:
{
"ID"
:"1"
,"Status"
:"Completed"
,"Progress"
:100
,"Description"
:"Get sharp jobs"
,"Created"
:"2023-05-03 09:48:35"
,"LastUpdated"
:"2023-05-03 09:48:35"
,"Summary"
: {"99:58"
:{"job_id"
:58
,"num_guids"
:1
,"num_rails"
:1
,"trees"
:{"0"
:{"tree_id"
:0
,"type"
:"LLT"
,"ANs"
:{"0x33333"
:{"description"
:"sw3"
,"lid"
:23
,"rank"
:1
,"guid"
:"0x33333"
,"parent_guid"
:null
,"child_guids"
:null
,"hca_guids"
:["0x78395179"
,"0x78395178"
] } } } },"reservation_key"
:"99"
},"RelatedObjects"
:[],"CreatedBy"
:"admin"
,"Operation"
:"Get sharp jobs"
,"Foreground"
:true
,"SiteName"
:""
}