PUT /chassis/{uuid}

Use this method to modify properties or refresh inventory for a specific Flex System chassis.

Note: You cannot modify properties for a DenseChassis.
The request body differs depending on the action that you want to perform. You can use this PUT method to perform the following management actions.

This method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/detail to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details.

Authentication

Authentication with user name and password is required.

Request URL

PUT https://{management_server_IP}/chassis/{uuid}

where {uuid} is the UUID of the chassis. To obtain the chassis UUID, use the GET /chassis method.

Query parameters

Attributes Required / Optional Description
synchronous={value} Optional When modifying attributes, indicates when the job ID is returned
  • true. (default) Returns the job ID and job status after the job is complete.

  • false. Returns the job ID immediately. You can use GET /tasks/detail to monitor the status and progress of the job.

Note: This query parameter applies only when one or more property parameters are specified in the request body.
The following example returns the job ID and job status after the job is complete.
GET https://192.0.2.0/chassis/6ED2CB368C594C66C2BB066D5A306138?synchronous=true

Request body

You can specify attributes from one of the following tables in each request.

Note: If you specify one or more attributes in Table 1 (to modify properties) or Table 2 (to refresh the inventory), this method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/detail to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details.
Attention: A successful response indicates that the request was successfully transmitted and accepted by the management server. It does not indicate that the operation that is associated with the job was successful.
Table 1. Modify chassis attributes.
Attributes Required / Optional Type Description
cmmDisplayName Optional String CMM display name
contact Optional String Chassis contact information
domainName Optional String Chassis domain name
hostname Optional String Chassis hostname
location Optional Array Information about the chassis location
Important: Changes made to the location of the chassis using this API method are not reflected in the rack view.
  location Optional String New location of the chassis
  lowestRackUnit Optional Integer Lowest rack unit where the chassis is installed in the rack
  rack Optional String Rack location
  room Optional String Room location
userDescription Optional String Chassis description
The following example modifies the hostname, location, and contact information for a CMM:
{
   "contact": "new contact",
   "hostname":"", 
   "location": {"location":"new location"}
}
Table 2. Refresh the inventory
Attributes Required / Optional Type Description
refreshInventory Optional String Refreshes inventory for the chassis
If you specify this attribute, this method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/detail to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details.
Attention: A successful response indicates that the request was successfully transmitted and accepted by the management server. It does not indicate that the operation that is associated with the job was successful.
The following example refreshes inventory for the target chassis.
{
   "refreshInventory": "true" 
}
Table 3. Configure device authentication and access control.
Note: Only users with lxc-supervisor or lxc-security-admin privileges can modify the access-control settings.
Attributes Required / Optional Type Description
securityDescriptor Required Object Information about the authentication enablement and support the associated stored credentials for a managed device
  managedAuthEnabled Optional Boolean Indicates whether the device uses managed authentication. This can be one of the following values.
  • true. The device uses managed authentication.

  • false. The device uses local authentication

  publicAccess Optional Boolean Indicates whether the resource can be accessed by all role groups. This can be one of the following values.
  • true. The resource is can be access by all role group.

  • false. The resource is restricted to specific role groups.

  roleGroups Optional Array of strings List of role groups that are permitted to view and manage this device
  storedCredentials Required if managedAuthEnabled is set to true Object Information about the stored credential that is associated with this device, if applicable
    id Required if managedAuthEnabled is set to true String ID of the stored credential to associated with the device
The following example enables managed authentication and associates a stored credential account with the device.
{
   "securityDescriptor" : {
      "managedAuthEnabled" : true,
      "storedCredentials": {
         "id":"249721...",
      }
   }
}
The following example disables managed authentication to use local authentication instead.
{
   "securityDescriptor" : {
      "managedAuthEnabled" : false
   }
}
The following example restricts access to the managed device to members of the specified role groups.
{
   "securityDescriptor": {
      "publicAccess": false,
      "roleGroups": ["sales-os-admin","corp_fw_admin"]
   }
}
Table 4. Configure the security policy.
Attributes Required / Optional Type Description
securityPolicy Optional Object Information about the security policy
  mmPolicyLevel Required ID of the stored credential to associated with the device Policy level to be used. This can be one of the following values.
  • LEGACY
  • SECURE
The following example modifies the security policy for a device.
{
   "securityPolicy: {
      "cmmPolicyLevel": "SECURE"
   }
}
Table 5. Configure LED states.
Attributes Required / Optional Type Description
leds Optional Object Changes the state of the location LED
  name Required String Description of the LED (for example, Fault or Power. To obtain the names of LEDs for a specific chassis, use the GET /chassis/{uuid_list} method.
  state Required String State of LED. This can be one of the following values.
  • off
  • on
  • blinking

To obtain the current state of the LED, use the GET /chassis/{uuid_list} method.

The following example turns off the Location LED.
{
   "leds":[{
      "name":"Location",
      "state":"off"
   }]
}
Table 6. Configure the failover to a back CMM
Attributes Required / Optional Type Description
cmmFailover Optional Boolean Indicates whether to initiate a failover. This can be one of the following values.
  • true. Initiate a failover.
  • false. Do not initiate a failover.
The following example configures failover to a backup CMM:
{
   "cmmFailover": true
}
Table 7. Configure TLS and NIST mode.
Attributes Required / Optional Type Description
nist Optional Object Information about NIST settings
  currentValue Required String Cryptography mode to be used. This can be one of the following values.
  • Unknown
  • Compatibility
  • Nist_800_131A_Strict
  • Nist_800_131A_Custom
tlsVersion Optional Object Information about TLS settings
  currentValue Required String SSL or TLS protocol and version to be used. This can be one of the following values.
  • unsupported
  • TLS_12. TLS v1.2
  • TLS_13. TLS v1.3
The following example modifies the cryptographic settings for a device.
{
    "nist": {"currentValue": "NIST"}
}
Table 8. Configure the encapsulation mode
Attributes Required / Optional Type Description
encapsulationMode Optional String Encapsulation mode. This can be one of the following values.
  • normal. Encapsulation is disabled for this node.

    The global encapsulation setting is disabled by default. When disabled, the device encapsulation mode is set to normal and the firewall rules are not changed as part of the management process.

  • encapsulationLite. Encapsulation is enabled for this node.

    When the global encapsulation setting is enabled and the device supports encapsulation, XClarity Administrator communicates with the device during the management process to change the device encapsulation mode to encapsulationLite and to change the firewall rules on the device to limit incoming requests to those only from XClarity Administrator.

The following example modifies the encapsulation mode.
{
   "encapsulationMode": "encapsulationLite"
}

Response codes

Code Description Comments
200 OK The request completed successfully.
400 Bad Request A query parameter or request attribute is missing or not valid, or the operation is not supported. A descriptive error message is returned in the response body.
401 Unauthorized The user cannot be authenticated. Authentication has not been provided or has failed. A descriptive error message is returned in the response body.
403 Forbidden The orchestrator server was prevented from fulfilling the request. A descriptive error message is returned in the response body. Ensure that you have privileges to perform the request.
404 Not found A specified resource cannot be found. A descriptive error message is returned in the response body.
409 Conflict There is a conflict with the current state of the resource. A descriptive error message is returned in the response body.
500 Internal Server Error An internal error occurred. A descriptive error message is returned in the response body.

Response body

The response body provides information about the success or failure of the request. The attributes in the response body differ depending on the specified request attributes.

Note: A response body is not returned for some requests.
The following example is returned if the request is successful and the "refreshInventory": "true" request parameter is specified to refresh the device inventory.
{
   "statusCode": 200,
   "statusDescription": "The request completed successfully.",
   "messages": [{
      "explanation": "refreshInventory request for target 6ED2CB368C594C66C2BB066D5A306138 has
                      completed successfully.",
      "id": "FQXDM0200",
      "recovery": "",
      "recoveryUrl": "",
      "text": "The request completed successfully."
   }]
}