모든 프로젝트 작업의 범위를 지정된 풀로 설정할 수 있습니다. 모든 프로젝트에서 작동하는 명령은 URI에 "/projects"를 추가하고 단일 프로젝트에서 작동하는 명령은 "/projects/{project}"를 추가합니다.
|
다음 표는 프로젝트 리소스 내에 있는 편집 가능한 등록 정보의 목록을 보여 줍니다.
|
이 명령은 지정된 풀의 모든 프로젝트를 나열합니다. 반환된 각 프로젝트는 위에 나열된 수정 가능한 등록 정보 목록은 물론 풀 이름, 생성 시간, 로딩 상태, 복제 작업 및 데이터 사용량도 포함합니다.
질의 매개변수 필터 – 프로젝트 내의 등록 정보가 해당 값 안에 동일한 필터 문자열을 포함하도록 요구하는 단순한 문자열 일치 필터입니다.
|
요청 예:
GET /api/storage/v1/pools/gold/projects HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
get에 성공하면 JSON 형식의 프로젝트 등록 정보 배열과 함께 HTTP 코드 200(OK)이 반환됩니다.
결과 예:
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은 JSON 형식의 프로젝트 등록 정보와 함께 HTTP 코드 200(OK)을 반환합니다.
|
"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
}
}
프로젝트 만들기 명령은 지정된 스토리지 풀에 있는 지정된 이름의 프로젝트를 만듭니다. 기본 등록 정보가 지정된 새 프로젝트가 반환됩니다.
|
JSON 본문 요청 매개변수:
name – 프로젝트를 만들려면 프로젝트 이름을 제공해야 합니다.
project properties – 프로젝트 등록 정보를 새 프로젝트의 초기 값으로 설정할 수 있습니다.
이름이 "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”,
...
}
}
프로젝트 수정 명령은 기존 프로젝트의 속성을 변경합니다.
|
요청 매개변수 - 프로젝트 등록 정보 – 프로젝트 등록 정보를 새 프로젝트의 초기 값으로 설정할 수 있습니다.
프로젝트 이름을 "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”,
...
}
}
프로젝트 삭제 명령은 지정된 풀의 단일 프로젝트를 제거합니다.
|
요청 예:
DELETE /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
Get 요청 프로젝트 사용량 리소스를 통해 프로젝트에 대해 사용자별 또는 그룹별로 사용량 데이터를 가져올 수 있습니다.