Skip to main content
A newer release of this product is available.

Protocols NVMe subsystem-maps endpoint overview

Contributors

Overview

An NVMe subsystem map is an association of an NVMe namespace with an NVMe subsystem. When an NVMe namespace is mapped to an NVMe subsystem, the NVMe subsystem's hosts are granted access to the NVMe namespace. The relationship between an NVMe subsystem and an NVMe namespace is one subsystem to many namespaces.

The NVMe subsystem map REST API allows you to create, delete and discover NVMe subsystem maps.

Examples

Creating an NVMe subsystem map

# The API:
POST /api/protocols/nvme/subsystem-maps

# The call:
curl -X POST 'https://<mgmt-ip>/api/protocols/nvme/subsystem-maps' -H 'accept: application/hal+json' -d '{ "svm": { "name": "svm1" }, "subsystem": { "name": "subsystem1" }, "namespace": { "name": "/vol/vol1/namespace1" } }'

Retrieving all of the NVMe subsystem maps

# The API:
GET /api/protocols/nvme/subsystem-maps

# The call:
curl -X GET 'https://<mgmt-ip>/api/protocols/nvme/subsystem-maps' -H 'accept: application/hal+json'

# The response:
{
"records": [
  {
    "svm": {
      "uuid": "0e91b214-fe40-11e8-91a0-005056a79967",
      "name": "svm1",
      "_links": {
        "self": {
          "href": "/api/svm/svms/0e91b214-fe40-11e8-91a0-005056a79967"
        }
      }
    },
    "subsystem": {
      "uuid": "580a6b1e-fe43-11e8-91a0-005056a79967",
      "name": "subsystem1",
      "_links": {
        "self": {
          "href": "/api/protocols/nvme/subsystems/580a6b1e-fe43-11e8-91a0-005056a79967"
        }
      }
    },
    "namespace": {
      "uuid": "3ccdedc6-2519-4206-bc1f-b0f4adab6f89",
      "name": "/vol/vol1/namespace1",
      "_links": {
        "self": {
          "href": "/api/storage/namespaces/3ccdedc6-2519-4206-bc1f-b0f4adab6f89"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/api/protocols/nvme/subsystem-maps/580a6b1e-fe43-11e8-91a0-005056a79967/3ccdedc6-2519-4206-bc1f-b0f4adab6f89"
      }
    }
  }
],
"num_records": 1,
"_links": {
  "self": {
    "href": "/api/protocols/nvme/subsystem-maps"
  }
}
}

Retrieving a specific NVMe subsystem map

The NVMe subsystem map is identified by the UUID of the NVMe subsystem followed by the UUID of the NVMe namespace.

# The API:
GET /api/protocols/nvme/subsystem-maps/{subsystem.uuid}/{namespace.uuid}

# The call:
curl -X GET 'https://<mgmt-ip>/api/protocols/nvme/subsystem-maps/580a6b1e-fe43-11e8-91a0-005056a79967/3ccdedc6-2519-4206-bc1f-b0f4adab6f89' -H 'accept: application/hal+json'

# The response:
{
"svm": {
  "uuid": "0e91b214-fe40-11e8-91a0-005056a79967",
  "name": "svm1",
  "_links": {
    "self": {
      "href": "/api/svm/svms/0e91b214-fe40-11e8-91a0-005056a79967"
    }
  }
},
"subsystem": {
  "uuid": "580a6b1e-fe43-11e8-91a0-005056a79967",
  "name": "subsystem1",
  "_links": {
    "self": {
      "href": "/api/protocols/nvme/subsystems/580a6b1e-fe43-11e8-91a0-005056a79967"
    }
  }
},
"namespace": {
  "uuid": "3ccdedc6-2519-4206-bc1f-b0f4adab6f89",
  "name": "/vol/vol1/namespace1",
  "node": {
    "name": "node1",
    "uuid": "012b4508-67d6-4788-8c2d-801f254ce976",
    "_links": {
      "self": {
        "href": "/api/cluster/nodes/012b4508-67d6-4788-8c2d-801f254ce976"
      }
    }
  }
  "_links": {
    "self": {
      "href": "/api/storage/namespaces/3ccdedc6-2519-4206-bc1f-b0f4adab6f89"
    }
  }
},
"nsid": "00000001h",
"_links": {
  "self": {
    "href": "/api/protocols/nvme/subsystem-maps/580a6b1e-fe43-11e8-91a0-005056a79967/3ccdedc6-2519-4206-bc1f-b0f4adab6f89"
  }
}
}

Deleting an NVMe subsystem map

# The API:
DELETE /api/protocols/nvme/subsystem-maps/{subsystem.uuid}/{namespace.uuid}

# The call:
curl -X DELETE 'https://<mgmt-ip>/api/protocols/nvme/subsystem-maps/580a6b1e-fe43-11e8-91a0-005056a79967/3ccdedc6-2519-4206-bc1f-b0f4adab6f89' -H 'accept: application/hal+json'