NVIDIA SHARP 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.
NVIDIA SHARP reservation REST APIs support the following operations:
Get All Reservations
- Description – Retrieves all SHARP reservations 
- Request URL – GET /ufmRest/app/sharp/allocate_resources 
- 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 
 
Get Specific SHARP Reservation
- 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"]
   }
}
    
    
    
        
Create a New SHARP Reservation
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. By default, the SHARP blocking API is called, which entails sending the reservation request to SHARP and awaiting the response (success or fail). To revert to the previous behavior of using the non-blocking API, set the "blocking" parameter in the API to false. 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. 
- Example of a false partial allocation: Request URL – POST /ufmRest/app/sharp/resources?partially_alloc=false 
- Example of calling a non-blocking API: Request URL – POST /ufmRest/app/sharp/resources?blocking=false 
- Request Content-Type – Application/json 
- Status Codes - 202 – ACCEPTED (All nodes were added successfully to created allocation) 
- 206 – PARTIAL (Not all nodes were added to created allocation because they are not found in the fabric) 
- 200 - OK (All nodes were added successfully to the created allocation and the SHARP blocking API is called) 
- 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}
Delete SHARP Reservation
The following API is replacing the deprecated SHARP API presented in earlier versions of the UFM Enterprise REST API Guide.
- Description - Deletes SHARP Allocation. By default, the SHARP blocking API is called to delete SHARP reservation. 
- Example of calling delete allocation using SHARP blocking API: Request URL - DELETE /ufmRest/app/sharp/resources/<app_id> 
- Example of calling delete allocation using SHARP non-blocking API: Request URL - DELETE /ufmRest/app/sharp/resources/<app_id>?blocking=false 
- Request Content-Type – Application/json 
- Status Codes - 204 – NO CONTENT 
- 400 – BAD_REQUEST 
 
Update SHARP Reservation
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 /ufmRest/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: - { - "port_guids":[- "f452140300383a01",- "f452140300383a02"] }
 
The SHARP jobs REST API provides methods on obtaining information on SHARP jobs and support the following operations:
Get All SHARP Jobs
- Description – Retrieves all active SHARP jobs. 
- Request URL – GET /ufmRest/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"} } } }
Get a Specific SHARP Job
- Description – Retrieves specific active SHARP jobs with specific a reservation_id 
- Request URL – GET /ufmRest/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"} }
Get All SHARP Non-Blocking Jobs
- Description – Retrieves all active SHARP jobs using non blocking SHARP API 
- Request URL – GET /ufmRest/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":- ""}
Get Specific SHARP Non-Blocking Job
- Description – Retrieves specific active SHARP jobs with specific reservation_id using non blocking SHARP API 
- Request URL – GET /ufmRest/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":- ""}