Lista de operaciones del sistema y gestión de recursos compartidos del sistema de archivos. Todos los comandos se pueden acotar a una agrupación de almacenamiento o a un proyecto determinados.
{service_uri}/pools/{pool}/project/{project}
|
Cada sistema de archivos contiene propiedades del proyecto y tiene las siguientes propiedades específicas del sistema de archivos.
|
El comando Mostrar sistemas de archivos muestra todos los sistemas de archivos de una agrupación o un proyecto determinado.
Filtro de parámetros de consulta: un filtro de coincidencia de cadenas simple que requiere una propiedad dentro del proyecto para contener la misma cadena de filtros dentro de su valor.
|
Ejemplo de solicitud:
GET /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
La solicitud correcta devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) junto con una matriz de propiedades del sistema de archivos en formato JSON.
Resultado de ejemplo:
HTTP/1.1 200 OK Content-Type: application/json { “filesystems”: [{ “name”: “filesystem-01”, “project”: “proj-01”, “pool”: “gold”, ... }, { “name”: “filesystem-02”, “project”: “proj-01”, “pool”: “gold”, ... }] }
También se admite una lista de todos los sistemas de archivos de todas las agrupaciones y proyectos. En ese caso, el URI será /api/storage/v1/filesystems..
Solicitud de ejemplo (para obtener todos los sistemas de archivos con la cadena "abcd" como parte de sus propiedades):
GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
El comando obtener sistema de archivos devuelve las propiedades del sistema de archivos en una agrupación o en un proyecto determinados.
|
Ejemplo de solicitud (para visualizar un proyecto denominado "proj-01"):
GET /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
Un comando get correcto devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) junto con las propiedades del sistema de archivos en formato JSON.
Ejemplo de respuesta:
HTTP/1.1 200 OK Content-Type: application/json { "filesystem": { "logbias": "latency", "creation": "20130423T21:30:34", "nodestroy": false, "dedup": false, "sharenfs": "on", "sharesmb": "off", "mountpoint": "/export/grape", "snaplabel": "", "id": "424ca2ec-b3fa-df86-0000-000000000000", "readonly": false, "rrsrc_actions": [], "compression": "off", "sharetftp": "", "source": { "logbias": "default", "dedup": "default", "sharenfs": "inherited", "sharesmb": "off", "mountpoint": "inherited", "rrsrc_actions": "local", "compression": "default", "sharetftp": "inherited", "snapdir": "default", "aclmode": "default", "copies": "default", "aclinherit": "default", "shareftp": "inherited", "readonly": "default", "secondarycache": "default", "exported": "inherited", "vscan": "default", "reservation": "local", "atime": "default", "recordsize": "default", "checksum": "inherited", "sharesftp": "inherited", "nbmand": "default", "rstchown": "default" }, "snapdir": "hidden", "aclmode": "discard", "copies": 1, "aclinherit": "restricted", "shareftp": "", "canonical_name": "platinum/local/default/grape", "recordsize": 131072.0, "usage": { "available": 880395477504.0, "loading": false, "quota": 0.0, "snapshots": 18432.0, "compressratio": 100.0, "reservation": 0.0, "total": 50176.0, "data": 31744.0 }, "secondarycache": "all", "collection": "local", "exported": true, "vscan": false, "reservation": 0.0, "shadow": "none", "atime": true, "pool": "platinum", "quota_snap": true, "name": "grape", "checksum": "fletcher4", "project": "default", "sharesftp": "", "nbmand": false, "reservation_snap": true, "sharedav": "", "rstchown": true, "root_acl": { "owner@:cC:fd:deny", "everyone@:rw:fd:allow", "user:john:rw:allow", } "smbshareacl": { "owner@:cC:fd:deny", "everyone@:rw:fd:allow", "user:john:rw:allow", } }
El comando de creación de sistema de archivos de proyecto crea un sistema de archivos con un nombre determinado que reside en una agrupación de almacenamiento o un proyecto determinados. Se devuelve el sistema de archivos nuevo con propiedades predeterminadas.
|
Solicitar parámetros:
name: se debe suministrar el nombre del sistema de archivos para crear un nuevo sistema de archivos.
filesystem properties: cualquiera de las propiedades detalladas en las propiedades del sistema de archivos o del proyecto se pueden configurar como valores iniciales.
Ejemplo de solicitud (para crear un sistema de archivos denominado "share-01" y propiedad del usuario "joe"):
POST /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1 Host: zfs-storage.example.com Content-Type: application/json Accept: application/json { “name”: “share-01”, “owner”: “joe” }
La creación satisfactoria devuelve HTTP Status 201 (Created) (estado HTTP 201 [creado]) con el encabezado de ubicación que contiene el URI del sistema de archivos nuevo. El cuerpo contiene todas las propiedades del sistema de archivos en formato JSON.
Ejemplo de respuesta:
HTTP/1.1 201 Created Content-Type: application/json Location: /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 { “filesystem”: { “name”: “share-01”, “pool”: “gold”, “collection”: “local”, “project”: “proj-01”, “owner”: “joe” ... } }
El comando de modificación de sistema de archivos cambia los atributos de un sistema de archivos existente. La respuesta satisfactoria devuelve HTTP Status 202 (Accepted) (estado HTTP 202 [aceptado]) y muestra todas las propiedades del sistema de archivos.
Solicitar parámetros (propiedades del sistema de archivos): se puede modificar cualquiera de las propiedades del sistema de archivos o del proyecto..
|
Ejemplo de solicitud (para cambiar el nombre de un sistema de archivos de "share-01" a "new-name" y el propietario a "nobody"):
PUT /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 HTTP/1.1 Host: zfs-storage.example.com Content-Type: application/json Accept: application/json { “name”: “new-name”, “owner”: “nobody”, }
Ejemplo de respuesta:
HTTP/1.1 202 Accepted Content-Type: application/json Location: http://zfs-storage.example.com:215 /pools/gold/projects/proj-01/filesystems/share-01 { “filesystem”: { “name”: “new-name”, “pool”: “gold”, “collection”: “local”, “project”: “proj-01”, “owner”: “nobody” ... } }
El comando suprimir sistema de archivos elimina un solo sistema de archivos de una agrupación o un proyecto determinados.
|
Ejemplo de solicitud:
DELETE /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
La supresión satisfactoria devuelve HTTP Status 204 (No Content) (estado HTTP 204 [sin contenido]).
Ejemplo de respuesta:
HTTP/1.1 204 No-Content
Se pueden crear o modificar cuotas de usuario o de grupo con solicitudes POST o PUT, respectivamente. Las solicitudes GET para los recursos de uso del sistema de archivos se usan para obtener datos de uso por usuario o por grupo para el proyecto.