Go to main content
Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.7.0

印刷ビューの終了

更新: 2017 年 3 月
 
 

プロジェクトの操作

プロジェクトの操作はすべて、特定のプールへスコープ指定できます。すべてのプロジェクト全体で操作するコマンドは URI に「/projects」を追加し、単一のプロジェクトで操作するコマンドは「/projects/{project}」を追加します。

表 63  プロジェクトコマンド
リクエスト
パス /api/storage/v1
説明
GET
/projects
すべてのプロジェクトを一覧表示します
GET
/pools/<pool>/projects
プロジェクトを一覧表示します
GET
/pools/<pool>/projects /<project>
プロジェクトの詳細を取得します
POST
/pools/<pool>/projects
プロジェクトを作成します
PUT
/pools/<pool>/projects /<project>
プロジェクトを変更します
DELETE
/pools/<pool>/projects /<project>
プロジェクトを破棄します
GET
/pools/<pool>/projects /<project>/usage/groups
プロジェクトグループの使用状況を取得します
GET
/pools/<pool>/projects /<project>/usage/groups/<group>
指定されたグループのプロジェクトの使用状況を取得します
GET
/pools/<pool>/projects /<project>/usage/users
プロジェクトユーザーの使用状況を取得します
GET
/pools/<pool>/projects /<project>/usage/users/<user>
指定されたユーザーのプロジェクトの使用状況を取得します

次の表に、プロジェクトのリソース内で編集可能なプロパティーのリストを示します。

表 64  プロジェクトのプロパティー
名前
説明
string
aclinherit
ACL の継承動作 (「discard」、「noallow」、「restricted」、「passthrough」、「passthrough-x」、「passthrough-mode-preserve」)
string
aclmode
モード変更での ACL 動作 (「discard」、「mask」、「passthrough」)
boolean
atime
読み取りフラグでのアクセス時間を更新します
string
canonical_name
正規名
string
checksum
ブロックチェックサム (「fletcher2」、「fletcher4」、「sha256」)
string
compression
データ圧縮設定 (「off」、「lzjb」、「gzip-2」、「gzip」、「gzip-9」)
number
copies
追加のレプリケーションコピーの数
datetime
creation
プロジェクト (またはLUN、ファイルシステム) 作成の日付と時間
boolean
dedup
データ複製解除フラグ
string
default_group
プロジェクトのデフォルトのファイルシステムグループ: 「other」
string
default_permissions
プロジェクトのデフォルトのファイルシステム権限「700」
boolean
default_sparse
プロジェクトのデフォルトの LUN スパースデータフラグ
string
default_user
プロジェクトのデフォルトのファイルシステムユーザー: 「nobody」
number
default_volblocksize
プロジェクトのデフォルトの LUN ブロックサイズ: 8192
number
default_volsize
プロジェクトのデフォルトの LUN サイズ
boolean
exported
エクスポート済みフラグ
string
logbias
同期書き込みバイアス (「latency」、「throughput」)
string
mountpoint
シェアマウントポイントのデフォルト「/export/proj-01」
string
name
プロジェクト名
boolean
nbmand
非ブロックの必須ロックフラグ
boolean
nodestroy
破棄防止フラグ
number
quota
プロジェクトの割り当て制限サイズ (バイト)
string
origin
クローン元
string
pool
プール名
boolean
readonly
true に設定されている場合データは読み取り専用です
string
recordsize
データベースのレコードサイズ「128k」
number
reservation
データ予約サイズ
boolean
rstchown
所有権の変更制限フラグ
string
secondarycache
セカンダリキャッシュの使用状況 (「all」、「metadata」、「none」)
string
sharedav
HTTP シェア (「off」、「rw」、「ro」)
string
shareftp
FTP シェア (「off」、「rw」、「ro」)
string
sharenfs
NFS シェア (「off」、「on」、「ro」、「rw」)
string
sharesftp
SFTP シェア (「off」、「rw」、「ro」)
string
sharesmb
SMB/CIFS シェア (「off」、「rw」、「ro」)
string
sharetftp
TFTP シェア (「off」、「rw」、「ro」)
string
snapdir
.zfs/snaphsot の可視性 (「hidden」、「visible」)
string
snaplabel
定期スナップショットラベル
boolean
vscan
ウイルススキャンフラグ

プロジェクトの一覧表示

このコマンドを実行すると、指定のプール内のすべてのプロジェクトが表示されます。返されたプロジェクトのおのおのには、上記で示された変更可能なプロパティーのリストのほかに、プール名、作成時間、ロード状態、レプリケーションアクション、データ使用状況も含まれます。


注 -  depth 問い合わせパラメータおよび match_Property-Name=Value 問い合わせパラメータはサポートされません。

問合せパラメータフィルタ – プロジェクト内のプロパティーがその値内に同じフィルタ文字列を含んでいることを必要とする簡易的な文字列照合フィルタ。

表 65  URI パラメータ
パラメータ
説明
pool
ストレージプール名

リクエストの例:

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

get が成功すると、HTTP コード 200 (OK) が JSON 形式のプロジェクトプロパティーの配列とともに返されます。

結果例:

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

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

すべてのプール全体のすべてのプロジェクトのリストもサポートされます。URI には /projects パスのみが含まれます。

プロパティーの一部として「backup」を持つすべてのプロジェクトを取得するリクエストの例:

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

プロジェクトのプロパティーの取得

このコマンドを実行すると、指定されたプール内の単一のプロジェクトのプロパティーが一覧表示されます。get が成功すると、HTTP コード 200 (OK) が JSON 形式のプロジェクトプロパティーとともに返されます。

表 66  プロジェクト取得の URI パラメータ
パラメータ
説明
pool
ストレージプール名
project
プロジェクト名

「gold」プール内の「proj-01」というプロジェクトを一覧表示するリクエストの例:

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

レスポンスの例:

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

プロジェクトの作成

プロジェクトの作成コマンドを実行すると、指定されたストレージプールに指定された名前のプロジェクトが作成されます。デフォルトのプロパティーを持つ新しいプロジェクトが返されます。

表 67  URI パラメータ
パラメータ
説明
pool
ストレージプール名

JSON の本文リクエストパラメータ:

  • 名前 – プロジェクトを作成するには、プロジェクト名を指定する必要があります。

  • プロジェクトプロパティー – 任意のプロジェクトプロパティーを新しいプロジェクトの初期値として設定できます。

リクエストの例 (「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”
}

作成に成功すると、新しいプロジェクトの URI を含むロケーションヘッダーとともに HTTP ステータス 201 (Created) が返されます。本文には、JSON 形式のプロジェクトプロパティーがすべて含まれます。

結果の例:

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

プロジェクトの変更

プロジェクトの変更コマンドは、既存のプロジェクトの属性を変更します。

表 68  URI パラメータ
パラメータ
説明
pool
ストレージプール名
project
プロジェクト名

リクエストパラメータ – プロジェクトプロパティー - 任意のプロジェクトプロパティーを新しいプロジェクトの初期値として設定できます。

リクエストの例 (プロジェクト名を「proj-01」から「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”
}

応答に成功すると、HTTP ステータス 202 (Accepted) が返され、すべてのプロジェクトプロパティーが表示されます。

レスポンスの例:

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

プロジェクトの削除

プロジェクトの削除コマンドを実行すると、指定されたプール内の単一のプロジェクトが削除されます。

表 69  URI パラメータ
パラメータ
説明
pool
ストレージプール名
project
プロジェクト名

リクエストの例:

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

プロジェクトの使用状況

プロジェクトの使用状況リソースの取得リクエストは、プロジェクトのユーザー当たりまたはグループ当たりの使用状況データの取得に使用できます。