Chuyển tới nội dung chính

Thao tác VM (Start, Stop, Reboot)

POST/v2.1/servers/{server_id}/action

Hầu hết thao tác vòng đời trên một VM hiện có dùng cùng endpoint nhưng khác action key trong body. Request là bất đồng bộ: API trả 202 Accepted và trạng thái VM thay đổi ngay sau đó, nên hãy poll GET /v2.1/servers/{server_id} cho đến khi VM đạt trạng thái mong muốn.

info

Request​

Tham số​

server_idstringbắt buộcpath

UUID của VM.

os-startnullbắt buộcbody

Khởi động VM đang dừng. Yêu cầu trạng thái SHUTOFF.

os-stopnullbắt buộcbody

Dừng VM đang chạy (shutdown ACPI graceful, sau đó forced khi hết timeout đã cấu hình).

rebootobjectbắt buộcbody

Khởi động lại VM đang chạy.

1 trường
typestringbắt buộcbody

SOFT (graceful) hoặc HARD (power cycle).

pausenullbắt buộcbody

Đóng băng VM trong bộ nhớ. Yêu cầu trạng thái ACTIVE.

unpausenullbắt buộcbody

Hoàn tác pause.

suspendnullbắt buộcbody

Tạm treo VM và giải phóng bộ nhớ trên host. Yêu cầu trạng thái ACTIVE.

resumenullbắt buộcbody

Hoàn tác suspend.

locknullbắt buộcbody

Ngăn user khác và một số thao tác API thay đổi VM.

unlocknullbắt buộcbody

Gỡ lock.

Action key phải là key duy nhất trong body. Gửi hai action trong một request sẽ trả 400.

Tham chiếu action​

ActionBodyTrạng thái yêu cầuTrạng thái sau thao tác
Khởi động (Start){"os-start": null}SHUTOFFACTIVE
Dừng (Stop){"os-stop": null}ACTIVESHUTOFF
Khởi động lại — graceful (Reboot){"reboot": {"type": "SOFT"}}ACTIVEACTIVE
Khởi động lại — hard (Reboot){"reboot": {"type": "HARD"}}ACTIVEACTIVE
Tạm dừng (Pause){"pause": null}ACTIVEPAUSED
Bỏ tạm dừng (Unpause){"unpause": null}PAUSEDACTIVE
Tạm treo (Suspend){"suspend": null}ACTIVESUSPENDED
Tiếp tục (Resume){"resume": null}SUSPENDEDACTIVE
Khoá (Lock){"lock": null}bất kỳkhông đổi
Mở khoá (Unlock){"unlock": null}đang khoákhông đổi
warning

Reboot HARD và os-stop với VM đang có dữ liệu chưa lưu có thể làm mất dữ liệu ghi. Dùng reboot SOFT, hoặc shutdown từ bên trong guest, khi workload không thể mất dữ liệu.

Request mẫu — stop VM​

Dùng curl​

curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{"os-stop": null}' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action

HTTP request​

POST https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action
Content-Type: application/json
X-Auth-Token: gAAAAA<...>

{
"os-stop": null
}

Request mẫu — reboot graceful​

curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{"reboot": {"type": "SOFT"}}' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action

Response​

Body của response rỗng. Thao tác được theo dõi qua trạng thái VM.

Mã trạng thái​

Thành công​

MãMô tả
202 - AcceptedThao tác đã được chấp nhận và đang được xử lý.

Lỗi​

MãMô tả
400 - Bad RequestAction không xác định, hoặc gửi nhiều hơn một action.
401 - UnauthorizedUser phải xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundVM không tồn tại, hoặc không hiển thị với project của bạn.
409 - ConflictVM đang ở trạng thái không cho phép thao tác này (ví dụ os-start trên VM ACTIVE).
note

os-start không đưa VM đã shelve trở lại. Dùng {"unshelve": null} cho việc đó, và {"shelve": null} để shelve. Shelve giải phóng tài nguyên compute nhưng vẫn giữ định nghĩa VM và các volume.