Go to main content

Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

Opérations relatives à des projets

Toutes les opérations relatives à des projets peuvent se limiter à un projet donné. Les commandes portant sur tous les projets ajoutent /projects à l'URI, tandis que les commandes portant sur un seul projet ajoutent /projects/project.

Table 44  Commandes de projet
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/projects
Liste de tous les projets
GET
/pools/pool/projects
Liste des projets
GET
/pools/pool/projects?snaps=true
Liste de tous les projets, y compris les instantanés
GET
/pools/pool/projects/project
Obtention des détails d'un projet
POST
/pools/pool/projects
Création d'un projet
PUT
/pools/pool/projects/project
Modification d'un projet
DELETE
/pools/pool/projects/project
Destruction d'un projet
GET
/pools/pool/projects/project/usage/groups
Obtention de l'utilisation d'un groupe de projets
GET
/pools/pool/projects/project/usage/groups/group
Obtention de l'utilisation d'un projet pour le groupe spécifié
GET
/pools/pool/projects/project/usage/users
Obtention de l'utilisation par l'utilisateur du projet
GET
/pools/pool/projects/project/usage/users/user
Obtention de l'utilisation d'un projet pour l'utilisateur spécifié

Le tableau suivant répertorie les propriétés modifiables au sein d'une ressource de projet.

Table 45  Propriétés des projets
Propriété
Type
Description
aclinherit
string
Comportement d'héritage d'ACL ("discard", "noallow", "restricted", "passthrough", "passthrough-x", "passthrough-mode-preserve")
aclmode
string
Comportement ACL en cas de changement de mode ("discard", "mask", "passthrough")
atime
boolean
Mise à jour de l'heure d'accès sur un indicateur consulté
canonical_name
string
Nom canonique
checksum
string
Somme de contrôle de bloc ("fletcher2", "fletcher4", "sha256")
compression
string
Paramètre de compression des données ("off", "lzjb", "gzip-2", "gzip", "gzip-9")
copies
number
Nombre de copies de réplication supplémentaires
creation
datetime
Date et heure de création du projet (ou LUN, système de fichiers)
dedup
boolean
Indicateur de doublon des données
default_group
string
Groupe par défaut de système de fichiers de projet : "other"
default_permissions
string
Autorisations par défaut de système de fichiers de projet : "700"
default_sparse
boolean
Indicateur par défaut de données sparse de LUN de projet
default_user
string
Utilisateur par défaut de système de fichiers de projet : "nobody"
default_volblocksize
number
Taille par défaut de bloc LUN de projet : 8 192
default_volsize
number
Taille par défaut de LUN de projet
exported
boolean
Indicateur exporté
logbias
string
Décalage d'écriture synchrone ("latency", "throughput")
mountpoint
string
Partage de point de montage par défaut "/export/proj-01"
name
string
Nom de projet
nbmand
boolean
Indicateur de verrouillage obligatoire non bloquant
nodestroy
boolean
Indicateur de prévention de destruction
quota
number
Taille de quota de projet en octets
origin
string
Origine de clone
pool
string
Noms de pool
readonly
boolean
Les données sont lues uniquement si ce paramètre est défini sur "true"
recordsize
string
Taille des enregistrements de la base de données "128 k"
reservation
number
Taille de réservation des données
rstchown
boolean
Indicateur de restriction des modifications de propriété
secondarycache
string
Utilisation de cache secondaire ("all", "metadata", "none")
sharedav
string
Partage HTTP ("off", "rw", "ro")
shareftp
string
Partage FTP ("off", "rw", "ro")
sharenfs
string
Partage NFS ("off", "on", "ro", "rw")
sharesftp
string
Partage SFTP ("off", "rw", "ro")
sharesmb
string
Partage SMB/CIFS ("off", "rw", "ro")
sharetftp
string
Partage TFTP ("off", "rw", "ro")
snapdir
string
Visibilité .zfs/snapshot ("hidden", "visible")
snaplabel
string
Etiquette d'instantané planifié
vscan
boolean
Indicateur d'analyse antivirus

Liste des projets

Cette commande répertorie tous les projets dans un pool donné. La demande utilise un paramètre URI unique, qui est le nom du pool de stockage. Chaque projet renvoyé contient la liste des propriétés modifiables répertoriées ci-dessus ainsi que le nom du pool, sa date de création, son état de chargement, les actions, de réplication et l'utilisation des données.


Remarque -  Les paramètres de requête depth et match_property-name=value ne sont pas pris en charge.

Paramètres de requête : filter – simple filtre de correspondance de chaîne nécessitant une propriété au sein du projet pour contenir la même chaîne de filtre par rapport à sa valeur.

Exemple de demande :

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

En cas de succès de la commande get, un code HTTP 200 (OK) est renvoyé ainsi qu'un tableau des propriétés du projet au format JSON.

Exemple de résultat :

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

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

Une liste de tous les projets sur tous les pools est également prise en charge. L'URI contiendrait uniquement le chemin /projects.

Exemple de demande d'obtention de tous les projets dont les propriétés contiennent backup :

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

Obtention des propriétés d'un projet

Cette commande répertorie les propriétés d'un projet unique dans un pool donné. En cas de succès de la commande get, un code HTTP 200 (OK) est renvoyé ainsi qu'un tableau des propriétés du projet au format JSON.

Exemple de demande pour répertorier le projet nommé proj-01 dans le pool zfs-storage-1 :

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

Exemple de résultat :

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
    }
}

Création d'un projet

La commande de création de projet crée un projet dont le nom donné se situe dans le pool de stockage donné. La demande utilise un paramètre URI unique, qui est le nom du pool de stockage. Le nouveau projet présentant les propriétés par défaut est renvoyé.

Paramètres de demande de corps JSON :

  • nom : le nom du projet doit être renseigné pour créer un projet.

  • Propriétés du projet : chaque propriété du projet peut être définie en tant que valeur initiale du projet.

Exemple de demande de création d'un projet nommé 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"
}

Une création réussie renvoie un statut HTTP 201 (Created) dont l'en-tête d'emplacement contient l'URI du nouveau projet. Le corps contient toutes les propriétés du projet au format JSON.

Exemple de résultat :

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",
        ...
    }
}

Modification d'un projet

La commande de modification de projet modifie les attributs d'un projet existant. Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

Paramètres de demande, propriétés de projet : chaque propriété du projet peut être définie en tant que valeur initiale du projet.

Exemple de demande de modification d'un projet nommé proj-01 en 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"
}

Une réponse obtenue avec succès renvoie le code de statut HTTP 202 (Accepted) et répertorie toutes les propriétés du projet.

Exemple de résultat :

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",
         ...
    }
}

Suppression d'un projet

La commande de suppression de projet supprime un projet unique dans un pool donné. Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

Pour surveiller l'espace à récupérer dans le pool de stockage si la mise à jour différée pour la suppression d'ensembles de données asynchrone (OS8.7.0) a été acceptée, saisissez la commande GET pour pools/pool. Notez l'espace pour la propriété async_destroy_reclaim_space. Lorsque l'opération est terminée, un 0 (zéro) s'affiche.

Exemple de demande :

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

Utilisation d'un projet

La demande d'obtention de ressources d'utilisation de projet peut permettre d'obtenir les données d'utilisation par utilisateur ou par groupe lié au projet.