PowerStore REST API: Sử dụng Lọc để Tinh chỉnh Truy vấn của Bạn

API REST PowerStore cung cấp một cách mạnh mẽ để quản lý cụm PowerStore, chủ yếu khi sử dụng các tập lệnh của riêng mình [3] hoặc các công cụ tự động hóa.

Ở một số khu vực của PowerStore, hầu như toàn bộ chức năng đều khả dụng khi sử dụng REST API – và đôi khi thậm chí còn khả dụng hơn khi các thuộc tính bắt buộc không có trong GUI của Trình quản lý PowerStore.

Một nơi tuyệt vời để bắt đầu tìm hiểu thêm về REST API là SwaggerUI tích hợp [2] cung cấp tài liệu trực tuyến với chức năng kiểm tra trên hệ thống của bạn. SwaggerUI sử dụng định nghĩa OpenAPI. Một số công cụ của bên thứ 3 có thể tận dụng cùng định nghĩa OpenAPI và có thể tải xuống từ SwaggerUI. SwaggerUI khả dụng trên tất cả các mô hình và loại PowerStore bằng cách sử dụng https://<PowerStore>/swaggerui trong trình duyệt ưa thích của bạn.

Khi làm việc với PowerStore REST API, không phải lúc nào cũng dễ dàng để biết cách truy vấn một số thuộc tính. Ví dụ, có thể dễ dàng lọc theo tên ổ đĩa cụ thể để lấy id, kích thước và loại của một hoặc nhiều ổ đĩa khi sử dụng “*” làm ký tự đại diện:  

Để truy vấn tất cả các tập có chữ “Test” ở đâu đó trong tên của nó, chúng ta có thể sử dụng

tên=thích.*Kiểm tra* 

dưới dạng chuỗi truy vấn:

% curl -k -s -u người dùng:pass -X NHẬN "https://powerstore.lab/api/rest/volume?select=id,name,size,type&name=like.*Test*" | jq .
[
  {
    "id": "a6fa6b1c-2cf6-4959-a632-f8405abc10ed",
    "tên": "TestVolume",
    "kích thước": 107374182400,
    "loại": "Chính"
  }
]

Trong ví dụ đó, mặc dù chúng ta biết rằng có nhiều snapshot cho một volume cụ thể, truy vấn REST API sử dụng tên volume cha không hiển thị các snapshot liên quan. Đó là vì snapshot không được có tên của volume cha trong tên của chúng. Từ PowerStore Manager, chúng ta biết rằng volume này có ba snapshot, nhưng tên của chúng không liên quan đến tên volume:  

Làm sao có thể có cùng kết quả đầu ra với truy vấn REST API? Chúng ta biết rằng mọi thứ trong PowerStore đều được quản lý bằng ID và mô tả API trong SwaggerUI cho thấy một ổ đĩa có thể có thuộc tính parent_id bên dưới phần protection_data.

Tất cả các volume có protection_data->>parent_id bằng với ID của “TestVolume” của chúng tôi đều hiển thị các snapshot liên quan cho TestVolume. Khóa cho truy vấn là cú pháp sau cho các thuộc tính cơ bản:

dữ liệu bảo vệ->>parent_id=eq.a6fa6b1c-2cf6-4959-a632-f8405abc10ed

Lệnh curl kết quả để truy vấn các ổ đĩa ảnh chụp nhanh hiển thị cú pháp giống nhau để chọn “creator_type” từ một tài nguyên lồng nhau:

% curl -k -s -u người dùng:pass -X NHẬN 'https://powerstore/api/rest/volume?select=id,name, protection_data->>creator_type , creation_timestamp& protection_data->>parent_id=eq.a6fa6b1c-2cf6-4959-a632-f8405abc10ed ' | jq .
[
  {
    "id": "051ef888-a815-4be7-a2fb-a39c20ee5e43",
    "name": "Ảnh chụp thứ 2 với tệp mới 1GB",
     "creator_type": "Người dùng",
     "creation_timestamp": "2022-02-03T15:35:53.920133+00:00"
  },
  {
    "id": "23a26cb6-a806-48e9-9525-a2fb8acf2fcf",
    "name": "chụp với tệp 1 GB",
     "creator_type": "Người dùng",
     "creation_timestamp": "2022-02-03T15:34:07.891755+00:00"
  },
  {
    "id": "ef30b14e-daf8-4ef8-8079-70de6ebdb628",
    "tên": "sau khi xóa các tập tin",
     "creator_type": "Người dùng",
     "creation_timestamp": "2022-02-03T15:37:21.189443+00:00"
  }
]