Add NVMe subsystem hosts
POST /protocols/nvme/subsystems/{subsystem.uuid}/hosts
Introduced In: 9.6
Adds NVMe subsystem host(s) to an NVMe subsystem.
Required properties
-
nqn
orrecords.nqn
- NVMe host(s) NQN(s) to add to the NVMe subsystem.
Related ONTAP commands
-
vserver nvme subsystem host add
Learn more
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
subsystem.uuid |
string |
path |
True |
The unique identifier of the NVMe subsystem. |
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description |
---|---|---|
_links |
||
dh_hmac_chap |
A container for the configuration of NVMe in-band authentication using the DH-HMAC-CHAP protocol for a host. |
|
io_queue |
The properties of the submission queue used to submit I/O commands for execution by the NVMe controller. |
|
nqn |
string |
The NVMe qualified name (NQN) used to identify the NVMe storage target. |
priority |
string |
The host priority setting allocates appropriate NVMe I/O queues (count and depth) for the host to submit I/O commands. Absence of this property in GET implies io_queue count and I/O queue depth are being used. |
records |
array[records] |
An array of NVMe hosts specified to add multiple NVMe hosts to an NVMe subsystem in a single API call. Valid in POST only. |
subsystem |
The NVMe subsystem to which the NVMe host has been provisioned. |
|
tls |
A container for the configuration for NVMe/TCP-TLS transport session for the host. |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"dh_hmac_chap": {
"controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"group_size": "string",
"hash_function": "string",
"host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"mode": "bidirectional"
},
"io_queue": {
"count": 4,
"depth": 32
},
"nqn": "nqn.1992-01.example.com:string",
"priority": "string",
"records": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"dh_hmac_chap": {
"controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"group_size": "string",
"hash_function": "string",
"host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"mode": "bidirectional"
},
"io_queue": {
"count": 4,
"depth": 32
},
"nqn": "nqn.1992-01.example.com:string",
"subsystem": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "subsystem1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"tls": {
"configured_psk": "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:",
"key_type": "configured"
}
}
],
"subsystem": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "subsystem1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"tls": {
"configured_psk": "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:",
"key_type": "configured"
}
}
Response
Status: 201, Created
Name | Type | Description |
---|---|---|
_links |
||
num_records |
integer |
The number of records in the response. |
records |
array[nvme_subsystem_host] |
Example response
{
"_links": {
"next": {
"href": "/api/resourcelink"
},
"self": {
"href": "/api/resourcelink"
}
},
"num_records": 1,
"records": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"dh_hmac_chap": {
"controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"group_size": "string",
"hash_function": "string",
"host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"mode": "bidirectional"
},
"io_queue": {
"count": 4,
"depth": 32
},
"nqn": "nqn.1992-01.example.com:string",
"priority": "string",
"records": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"dh_hmac_chap": {
"controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"group_size": "string",
"hash_function": "string",
"host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
"mode": "bidirectional"
},
"io_queue": {
"count": 4,
"depth": 32
},
"nqn": "nqn.1992-01.example.com:string",
"subsystem": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "subsystem1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"tls": {
"configured_psk": "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:",
"key_type": "configured"
}
}
],
"subsystem": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "subsystem1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"tls": {
"configured_psk": "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:",
"key_type": "configured"
}
}
]
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
262186 |
The "records" array and other host properties are mutually exclusive. |
72089705 |
The NVMe subsystem host already exists for the NVMe subsystem. |
72089716 |
The DH-HMAC-CHAP secret property is invalid. DH-HMAC-CHAP secrets must be in the format "DHHC-1:0X:<Base 64 encoded key and CRC>:", where X represents 0, 1, or 3 indicating no hash function, SHA-256, and SHA-512 respectively. |
72089771 |
The NQN is invalid. A non-empty qualifier is required after the prefix. An example of a valid NQN is nqn.1992-01.com.example:string. |
72089772 |
The NQN is invalid. Add the prefix 'nqn'. An example of a valid NQN is nqn.1992-01.com.example:string. |
72089773 |
The NQN is invalid. The date field must be formatted yyyy-mm. An example of a valid NQN is nqn.1992-01.com.example:string. |
72090001 |
The NVMe subsystem does not exist. |
72090003 |
A host to be added to an NVMe subsystem is missing the "nqn" property. |
72090036 |
An NVMe subsystem host NQN is duplicated in the input. |
72090041 |
An element in the "records" array contains an invalid property. |
72090042 |
The DH-HMAC-CHAP secret property is required when setting any other NVMe in-band authentication properties for a host. |
72090151 |
NVMe/TCP-TLS is not supported for the effective version of the cluster. |
72090202 |
A provided NVMe subsystem host TLS configured PSK is not valid. |
72090204 |
A TLS configured PSK was not provided when adding an NVMe subsystem host with the configured key type. |
72090205 |
An invalid combination for the TLS key type and configured PSK values was provided when adding an NVMe subsystem host. When key type is "none", no configured PSK is allowed. When key type is "configured", a configured PSK is required. |
Also see the table of common errors in the Response body overview section of this documentation.
Name | Type | Description |
---|---|---|
error |
Example error
{
"error": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
}
Definitions
See Definitions
href
Name | Type | Description |
---|---|---|
href |
string |
_links
Name | Type | Description |
---|---|---|
self |
dh_hmac_chap
A container for the configuration of NVMe in-band authentication using the DH-HMAC-CHAP protocol for a host.
Name | Type | Description |
---|---|---|
controller_secret_key |
string |
The controller secret for NVMe in-band authentication. The value of this property is used by the NVMe host to authenticate the NVMe controller while establishing a connection. If unset, the controller is not authenticated. When supplied, the property This property is write-only. The |
group_size |
string |
The Diffie-Hellman group size for NVMe in-band authentication. When property |
hash_function |
string |
The hash function for NVMe in-band authentication. When property |
host_secret_key |
string |
The host secret for NVMe in-band authentication. The value of this property is used by the NVMe controller to authenticate the NVMe host while establishing a connection. If unset, no authentication is performed by the host or controller. This property must be supplied if any other NVMe in-band authentication properties are supplied. Optional in POST. This property is write-only. The |
mode |
string |
The expected NVMe in-band authentication mode for the host. This property is an indication of which secrets are configured for the host. When set to:
|
io_queue
The properties of the submission queue used to submit I/O commands for execution by the NVMe controller.
Name | Type | Description |
---|---|---|
count |
integer |
The number of I/O queue pairs. Absence of this property in GET implies property priority is set and platform and transport protocol specific values for I/O queue count is being used. Valid in GET only. |
depth |
integer |
The I/O queue depth. Absence of this property in GET implies property priority is set and platform and transport protocol specific values for I/O queue depth is being used. Valid in GET only. |
io_queue
The properties of the submission queue used to submit I/O commands for execution by the NVMe controller.
Name | Type | Description |
---|---|---|
count |
integer |
The number of I/O queue pairs. The default value is inherited from the owning NVMe subsystem. |
depth |
integer |
The I/O queue depth. The default value is inherited from the owning NVMe subsystem. |
subsystem
The NVMe subsystem to which the NVMe host has been provisioned.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the NVMe subsystem. |
uuid |
string |
The unique identifier of the NVMe subsystem. |
tls
A container for the configuration for NVMe/TCP-TLS transport session for the host.
Name | Type | Description |
---|---|---|
configured_psk |
string |
A user supplied pre-shared key (PSK) value in PSK Interchange Format. Optional in POST. The values for property This property is write-only. The |
key_type |
string |
The method by which the TLS pre-shared key (PSK) is configured for the host. Optional in POST. The values for property Possible values:
This property defaults to |
records
The NVMe host provisioned to access NVMe namespaces mapped to a subsystem.
Name | Type | Description |
---|---|---|
_links |
||
dh_hmac_chap |
A container for the configuration of NVMe in-band authentication using the DH-HMAC-CHAP protocol for a host. |
|
io_queue |
The properties of the submission queue used to submit I/O commands for execution by the NVMe controller. |
|
nqn |
string |
The NVMe qualified name (NQN) used to identify the NVMe storage target. Not allowed in POST when the |
subsystem |
The NVMe subsystem to which the NVMe host has been provisioned. |
|
tls |
A container for the configuration for NVMe/TCP-TLS transport session for the host. |
nvme_subsystem_host
The NVMe host provisioned to access NVMe namespaces mapped to a subsystem.
Name | Type | Description |
---|---|---|
_links |
||
dh_hmac_chap |
A container for the configuration of NVMe in-band authentication using the DH-HMAC-CHAP protocol for a host. |
|
io_queue |
The properties of the submission queue used to submit I/O commands for execution by the NVMe controller. |
|
nqn |
string |
The NVMe qualified name (NQN) used to identify the NVMe storage target. |
priority |
string |
The host priority setting allocates appropriate NVMe I/O queues (count and depth) for the host to submit I/O commands. Absence of this property in GET implies io_queue count and I/O queue depth are being used. |
records |
array[records] |
An array of NVMe hosts specified to add multiple NVMe hosts to an NVMe subsystem in a single API call. Valid in POST only. |
subsystem |
The NVMe subsystem to which the NVMe host has been provisioned. |
|
tls |
A container for the configuration for NVMe/TCP-TLS transport session for the host. |
_links
Name | Type | Description |
---|---|---|
next |
||
self |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
returned_error
Name | Type | Description |
---|---|---|
arguments |
array[error_arguments] |
Message arguments |
code |
string |
Error code |
message |
string |
Error message |
target |
string |
The target parameter that caused the error. |