Go to main content

Guía de la API de RESTful de Oracle® ZFS Storage Appliance (versión OS8.8.x)

Salir de la Vista de impresión

Actualización: Agosto de 2021
 
 

Operaciones de los proyectos

Todas las operaciones de los proyectos se pueden acotar a una agrupación específica. Los comandos que funcionan a través de todos los proyectos anexan /projects al identificador uniforme de recursos (URI), y comandos que operan en un solo anexo de proyecto /projects/project.

Tabla 44  Comandos del proyecto
Solicitud
Anexar a la ruta de acceso /api/storage/v{1|2}
Descripción
GET
/projects
Mostrar todos los proyectos.
GET
/pools/pool/projects
Mostrar proyectos.
GET
/pools/pool/projects?snaps=true
Mostrar todos los proyectos, incluidas las instantáneas.
GET
/pools/pool/projects/project
Obtener detalles del proyecto.
POST
/pools/pool/projects
Crear un proyecto.
PUT
/pools/pool/projects/project
Modificar un proyecto.
DELETE
/pools/pool/projects/project
Destruir un proyecto.
GET
/pools/pool/projects/project/usage/groups
Obtener uso de grupo de proyectos.
GET
/pools/pool/projects/project/usage/groups/group
Obtener uso del proyecto para el grupo especificado.
GET
/pools/pool/projects/project/usage/users
Obtener uso usuario de proyectos.
GET
/pools/pool/projects/project/usage/users/user
Obtener uso del proyecto para el usuario especificado.

La tabla siguiente muestra la lista de propiedades editables dentro de un recurso de proyecto.

Tabla 45  Propiedades del proyecto
Propiedad
Tipo
Descripción
aclinherit
string
Comportamiento de herencia de ACL ("discard", "noallow", "restricted", "passthrough" "passthrough-x", "passthrough-mode-preserve").
aclmode
string
El comportamiento de ACL en cambio de modo ("discard", "mask", "passthrough").
atime
boolean
Actualizar tiempo de acceso en indicador de lectura.
canonical_name
string
Nombre canónico.
checksum
string
Bloquear total de control ("fletcher2", "fletcher4", "sha256").
compression
string
Valor de compresión de datos ("off", "lzjb", "gzip-2", "gzip", "gzip-9").
copies
number
Número de copias de replicación adicionales.
creation
datetime
Fecha y hora de creación del proyecto (o LUN, sistema de archivos).
dedup
boolean
Indicador de desduplicación de datos.
default_group
string
Grupo de sistema de archivos predeterminado del proyecto: "other".
default_permissions
string
Permisos del sistema de archivos predeterminados del proyecto "700".
default_sparse
boolean
Indicador de datos dispersos del LUN predeterminado del proyecto.
default_user
string
Usuario del sistema de archivos predeterminado del proyecto: "nobody".
default_volblocksize
number
Tamaño del bloque del LUN predeterminado del proyecto: 8192.
default_volsize
number
Tamaño del LUN predeterminado del proyecto.
exported
boolean
Indicador exportado.
logbias
string
Inclinación de la escritura síncrona ("latency", "throughput").
mountpoint
string
Compartir punto de montaje predeterminado "/export/proj-01".
name
string
Nombre de proyecto
nbmand
boolean
Indicador de bloqueo obligatorio sin bloque.
nodestroy
boolean
Evitar indicador de destrucción.
quota
number
Tamaño de cuota de proyecto en bytes
origin
string
Clonar origen.
pool
string
Nombres de agrupación
readonly
boolean
Los datos se leen solamente si se configuran en "true".
recordsize
string
Tamaño del registro de base de datos "128k".
reservation
number
Tamaño de reserva de datos
rstchown
boolean
Restringir indicador de cambio de propiedad
secondarycache
string
Uso de caché secundaria ("all", "metadata", "none")
sharedav
string
Compartir HTTP ("off", "rw", "ro").
shareftp
string
Compartir FTP ("off", "rw", "ro").
sharenfs
string
Compartir NFS ("off", "on", "ro", "rw").
sharesftp
string
Compartir SFTP ("off", "rw", "ro").
sharesmb
string
Compartir SMB/CIFS ("off", "rw", "ro").
sharetftp
string
Compartir TFTP ("off", "rw", "ro").
snapdir
string
.zfs/snapshot visibility ("hidden", "visible")
snaplabel
string
Etiqueta de instantánea programada
vscan
boolean
Indicador de análisis de virus

Mostrar proyectos

Este comando muestra todos los proyectos de una agrupación específica. Esta solicitud toma un solo parámetro del URI, que es el nombre de la agrupación de almacenamiento. Cada proyecto devuelto contiene la lista de propiedades modificables enumeradas arriba, además del nombre de la agrupación, la hora de reacción, el estado de carga, las acciones de replicación y uso de datos.


Notas -  No se admite el parámetro de consulta depth ni el parámetro de consulta match_property-name=value.

Parámetros de solicitud: filter; un filtro simple de coincidencia de cadenas 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/p1/projects HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

En un comando get correcto, se devuelve un HTTP code 200 (OK) (código HTTP 200 [correcto]) junto con una matriz de las propiedades del proyecto en formato JSON.

Resultado de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "projects": [{
        "name": "proj-01",
        ...
    }, {
        "name": "proj-02",
        ...
    }
}

También se admite una lista de proyectos a través de todas las agrupaciones; la URI contendrá solamente la ruta de los proyectos.

Ejemplo de solicitud para obtener todos los proyectos con backup como parte de sus propiedades:

GET /projects?filter=backup HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Obtener propiedades del proyecto

Este comando muestra las propiedades de un solo proyecto en una agrupación específica. Un comando get correcto devuelve HTTP Code 200 (OK) (código HTTP 200 [correcto]) junto con las propiedades del proyecto en formato JSON.

Ejemplo de solicitud para mostrar el proyecto denominado proj-01 en la agrupación zfs-storage-1:

GET /api/storage/v1/pools/p1/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Resultado de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "project": {
        "default_volblocksize": 8192.0,
        "logbias": "latency",
        "creation": "20130411T20:02:35",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "default_permissions": "700",
        "mountpoint": "/export",
        "snaplabel": "",
        "id": "042919bb-0882-d903-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "default_sparse": false,
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "zfs-storage-1/local/default",
        "recordsize": 131072.0,
        "usage": {
            "available": 1758424767306.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 0.0,
            "compressratio": 100.0,
            "child_reservation": 0.0,
            "reservation": 0.0,
            "total": 45960.0,
            "data": 45960.0
        },
        "default_volsize": 0.0,
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "atime": true,
        "pool": "p1",
        "default_user": "nobody",
        "name": "default",
        "checksum": "fletcher4",
        "default_group": "other",
        "sharesftp": "",
        "nbmand": false,
        "sharedav": "",
        "rstchown": true
    }
}

Crear proyecto

El comando de creación de proyecto crea un proyecto con un nombre determinado que reside en una agrupación de almacenamiento determinada. Esta solicitud toma un solo parámetro del URI, que es el nombre de la agrupación de almacenamiento. Se devuelve el proyecto nuevo con propiedades predeterminadas.

Parámetros de solicitud del cuerpo JSON:

  • name: se debe suministrar el nombre del proyecto para crear un proyecto.

  • project properties: cualquiera de las propiedades del proyecto se puede configurar como los valores iniciales del proyecto nuevo.

Ejemplo de solicitud para crear un proyecto denominado proj-01:

POST /api/storage/v1/pools/p1/projects HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "proj-01",
    "sharenfs": "ro"
}

La creación satisfactoria devuelve HTTP Status 201 (Created) (estado HTTP 201 [creado]) con la cabecera de ubicación que contiene el URI del proyecto nuevo. El cuerpo contiene todas las propiedades del proyecto en formato JSON.

Resultado de ejemplo:

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://zfs-storage.example.com:215
          /pools/p1/projects/proj-01

{
    "project": {
        "name": "proj-01",
        "href": "/api/storage/v1/pools/p1/projects/proj-01",
        "mountpoint": "/export/acme/zfs-storage-1",
        ...
    }
}

Modificar proyecto

El comando de modificación de proyecto cambia los atributos de un proyecto existente. Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

Parámetros de solicitud: project properties; cualquiera de las propiedades del proyecto se puede configurar como los valores iniciales del proyecto nuevo.

Ejemplo de solicitud para cambiar el nombre de un proyecto de proj-01 a new-name:

POST /api/storage/v1/pools/p1/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "new-name",
    "sharenfs": "rw",
    "compression": "gzip-9"
}

La respuesta satisfactoria devuelve el estado HTTP Status 202 (Accepted) (HTTP 202 [aceptado]) y muestra todas las propiedades del proyecto.

Resultado de ejemplo:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/p1/projects/new-name

{
    "project": {
        "name": "new-name",
        "sharenfs": "rw",
        "compression: "gzip-9",
         ...
    }
}

Suprimir proyecto

El comando suprimir proyecto elimina un solo proyecto de una agrupación determinada. Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

Para supervisar la cantidad de espacio que se debe reclamar en la agrupación de almacenamiento si se aceptó la actualización diferida de Supresión asíncrona de juego de datos (OS8.7.0), introduzca el comando GET para pools/pool. Tome nota de la cantidad de espacio para la propiedad async_destroy_reclaim_space. Una vez que finaliza la operación, se muestra 0 (cero).

Ejemplo de solicitud:

DELETE /api/storage/v1/pools/p1/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Uso del proyecto

Los recursos de uso de proyecto de las solicitudes GET se pueden usar para obtener datos de uso por usuario o por grupo para el proyecto.