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