Go to main content
Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

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

List Projects

Cette commande répertorie tous les projets dans un pool donné. 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.

Filtre des paramètres de requête : 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.

Table 65  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage

Exemple de demande :

GET /api/storage/v1/pools/gold/projects HTTP/1.1
Host: zfs-storage.example.com
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
Accept: application/json

Get Project Properties

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.

Table 66  Obtention des paramètres URI du projet
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet

Exemple de demande pour répertorier le projet nommé "proj-01" dans le pool "gold" :

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

Exemple de réponse :

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": "gold/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": "gold",
        "default_user": "nobody",
        "name": "default",
        "checksum": "fletcher4",
        "default_group": "other",
        "sharesftp": "",
        "nbmand": false,
        "sharedav": "",
        "rstchown": true
    }
}

Create Project

La commande de création de projet crée un projet dont le nom donné se situe dans le pool de stockage donné. Le nouveau projet présentant les propriétés par défaut est renvoyé.

Table 67  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage

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/gold/projects HTTP/1.1
Hosta: zfs-storage.example.com
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ésultats :

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

{
    “project”: {
        “name”: “proj-01”,
        "href": "/api/storage/v1/pools/gold/projects/proj-01",
        “mountpoint”: “/export/acme/gold”,
        ...
    }
}

Modify Project

La commande Modify Project modifie les attributs d'un projet existant.

Table 68  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du 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/gold/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com
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éponse :

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

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

Delete Project

La commande Delete Project supprime un projet unique dans un pool donné.

Table 69  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet

Exemple de demande :

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

Project Usage

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.