NVIDIA SHARP REST API

NVIDIA UFM Enterprise REST API Guide v6.13.2-5
Warning

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.

Get All Reservations

  • Description – Retrieves all SHARP reservations

  • Request URL – GET /ufmRest/ app/SHARP/allocate_reseources

  • Request Content Type – Application/json

  • Response

    Copy
    Copied!
                

    { "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

Copy
Copied!
            

{ "anas1":{ "pkey": "0x12", "guids": ["0x248a0703008a850a", "0x248a0703008a850b"] } }

Create a New SHARP Reservation

Warning

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:

    Copy
    Copied!
                

    { "app_id":"99", "hosts_names":"r-ufm51,r-ufm55", "pkey":"0x12", "app_resources_limit": -1 }

  • Create SHARP allocation by sending port_guids:

    Copy
    Copied!
                

    { "app_id":"99", "port_guids": ["f452140300383a01", "f452140300383a02"], "pkey":"0x12", "app_resources_limit": -1 }

Delete SHARP Reservation

Warning

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

Update SHARP Reservation

Warning

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:

      Copy
      Copied!
                  

      {    "hosts_names":"r-ufm51,r-ufm77" }

    • Update SHARP allocation by sending port_guids:

      Copy
      Copied!
                  

      {    "hosts_names":["f452140300383a01", "f452140300383a02"] }

Get All SHARP Jobs

  • Description – Retrieves all active SHARP jobs.

  • Request URL – GET /app/sharp/resources/jobs

  • Request Content Type – Application/json

  • Status Codes

    • 200 – OK

  • Response

    Copy
    Copied!
                

    {    "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 /app/sharp/resources/jobs/<job_id>?reservation_id=<reservation_id>

  • Request Content Type – Application/json

  • Status Codes

    • 200 – OK

    • 404 – NOT_FOUND

  • Response

    Copy
    Copied!
                

    {    "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 /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:

    Copy
    Copied!
                

    { "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 /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:

    Copy
    Copied!
                

    { "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":"" }

© Copyright 2023, NVIDIA. Last updated on Sep 5, 2023.