Storage qtrees endpoint overview
Overview
A qtree is a logically defined file system that can exist as a special subdirectory of the root directory within a FlexVol or a FlexGroup volume.
Qtree APIs
The following APIs are used to create, retrieve, modify, and delete qtrees.
– POST /api/storage/qtrees
– GET /api/storage/qtrees
– GET /api/storage/qtrees/{volume-uuid}/{qtree-id}
– PATCH /api/storage/qtrees/{volume-uuid}/{qtree-id}
– DELETE /api/storage/qtrees/{volume-uuid}/{qtree-id}
Examples
Creating a qtree inside a volume for an SVM
This API is used to create a qtree inside a volume for an SVM.
The following example shows how to create a qtree in a FlexVol with a given security style, UNIX permissions and an export policy.
# The API: POST /api/storage/qtrees # The call: curl -X POST 'https://<mgmt-ip>/api/storage/qtrees?return_records=true' -H 'accept: application/hal+json' -d @test_qtree_post.txt test_qtree_post.txt(body): { "svm": { "name": "svm1" }, "volume": { "name": "fv" }, "name": "qt1", "security_style": "unix", "unix_permissions": 744, "export_policy": { "name": "default" } } # The response: { "num_records": 1, "records": [ { "svm": { "name": "svm1" }, "volume": { "name": "fv" }, "name": "qt1", "security_style": "unix", "unix_permissions": 744, "export_policy": { "name": "default" }, "_links": { "self": { "href": "/api/storage/qtrees/?volume.name=fv&name=qt1" } } } ], "job": { "uuid": "84edef3c-4f6d-11e9-9a71-005056a7f717", "_links": { "self": { "href": "/api/cluster/jobs/84edef3c-4f6d-11e9-9a71-005056a7f717" } } } }
Retrieving qtrees
This API is used to retrieve qtrees.
The following example shows how to retrieve qtrees belonging to SVM svm1 and volume fv. The svm.name
and volume.name
query parameters are used to find the required qtrees.
# The API: GET /api/storage/qtrees # The call: curl -X GET "https://<mgmt-ip>/api/storage/qtrees/?svm.name=svm1&volume.name=fv" -H 'accept: application/hal+json' # The response { "records": [ { "svm": { "uuid": "b68f961b-4cee-11e9-930a-005056a7f717", "name": "svm1", "_links": { "self": { "href": "/api/svm/svms/b68f961b-4cee-11e9-930a-005056a7f717" } } }, "volume": { "uuid": "cb20da45-4f6b-11e9-9a71-005056a7f717", "name": "fv", "_links": { "self": { "href": "/api/storage/volumes/cb20da45-4f6b-11e9-9a71-005056a7f717" } } }, "id": 0, "name": "", "_links": { "self": { "href": "/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/0" } } }, { "svm": { "uuid": "b68f961b-4cee-11e9-930a-005056a7f717", "name": "svm1", "_links": { "self": { "href": "/api/svm/svms/b68f961b-4cee-11e9-930a-005056a7f717" } } }, "volume": { "uuid": "cb20da45-4f6b-11e9-9a71-005056a7f717", "name": "fv", "_links": { "self": { "href": "/api/storage/volumes/cb20da45-4f6b-11e9-9a71-005056a7f717" } } }, "id": 1, "name": "qt1", "_links": { "self": { "href": "/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/1" } } }, { "svm": { "uuid": "b68f961b-4cee-11e9-930a-005056a7f717", "name": "svm1", "_links": { "self": { "href": "/api/svm/svms/b68f961b-4cee-11e9-930a-005056a7f717" } } }, "volume": { "uuid": "cb20da45-4f6b-11e9-9a71-005056a7f717", "name": "fv", "_links": { "self": { "href": "/api/storage/volumes/cb20da45-4f6b-11e9-9a71-005056a7f717" } } }, "id": 2, "name": "qt2", "_links": { "self": { "href": "/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2" } } } ], "num_records": 3, "_links": { "self": { "href": "/api/storage/qtrees/?svm.name=svm1&volume.name=fv" } } }
Retrieving properties of a specific qtree using a qtree identifier
This API is used to retrieve properties of a specific qtree using qtree.id.
The following example shows how to use the qtree identifier to retrieve all properties of the qtree using the fields
query parameter.
# The API: GET /api/storage/qtrees/{volume.uuid}/{id} # The call: curl -X GET 'https://<mgmt-ip>/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2?fields=*' -H 'accept: application/hal+json' { "svm": { "uuid": "b68f961b-4cee-11e9-930a-005056a7f717", "name": "svm1", "_links": { "self": { "href": "/api/svm/svms/b68f961b-4cee-11e9-930a-005056a7f717" } } }, "volume": { "uuid": "cb20da45-4f6b-11e9-9a71-005056a7f717", "name": "fv", "_links": { "self": { "href": "/api/storage/volumes/cb20da45-4f6b-11e9-9a71-005056a7f717" } } }, "id": 2, "name": "qt2", "security_style": "unix", "unix_permissions": 744, "export_policy": { "name": "default", "id": 12884901889, "_links": { "self": { "href": "/api/protocols/nfs/export-policies/12884901889" } } }, "path": "/fv/qt2", "_links": { "self": { "href": "/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2" } } }
Retrieving properties of a specific qtree using the qtree name
This API is used to retrieve properties of a specific qtree using qtree.name.
The following example shows how to retrieve all of the properties belonging to qtree qt2. The svm.name
and volume.name
query parameters are used here along with the qtree name.
# The API: GET /api/storage/qtrees/ # The call: curl -X GET 'https://<mgmt-ip>/api/storage/qtrees/?svm.name=svm1&volume.name=fv&name=qt2&fields=*' -H 'accept: application/hal+json' { "svm": { "uuid": "b68f961b-4cee-11e9-930a-005056a7f717", "name": "svm1", "_links": { "self": { "href": "/api/svm/svms/b68f961b-4cee-11e9-930a-005056a7f717" } } }, "volume": { "uuid": "cb20da45-4f6b-11e9-9a71-005056a7f717", "name": "fv", "_links": { "self": { "href": "/api/storage/volumes/cb20da45-4f6b-11e9-9a71-005056a7f717" } } }, "id": 2, "name": "qt2", "security_style": "unix", "unix_permissions": 744, "export_policy": { "name": "default", "id": 12884901889, "_links": { "self": { "href": "/api/protocols/nfs/export-policies/12884901889" } } }, "_links": { "self": { "href": "/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2" } } }
Updating a qtree
This API is used to update a qtree.
The following example shows how to update properties in a qtree.
# The API: PATCH /api/storage/qtrees/{volume.uuid}/{id} # The call: curl -X PATCH 'https://<mgmt-ip>/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2' -H 'accept: application/hal+json' -d '@test_qtree_patch.txt' test_qtree_patch.txt(body): { "security_style": "mixed", "unix_permissions": 777, "export_policy": { "id": "9", "name": "exp1" } }
Renaming a qtree
This API is used to rename a qtree.
The following example below shows how to rename a qtree with a new name.
# The API: PATCH /api/storage/qtrees/{volume.uuid}/{id} # The call: curl -X PATCH 'https://<mgmt-ip>/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/1' -H 'accept: application/hal+json' -d '{ "name": "new_qt1" }'
Deleting a qtree inside a volume of an SVM
This API is used to delete a qtree inside a volume of an SVM.
The following example shows how to delete a qtree.
# The API: DELETE /api/storage/qtrees/{volume.uuid}/{id} # The call: curl -X DELETE "https://<mgmt-ip>/api/storage/qtrees/cb20da45-4f6b-11e9-9a71-005056a7f717/2" -H 'accept: application/hal+json'