Consulta de detalhes sobre snapshots do EVS
Função
Esta API é usada para consultar detalhes sobre os snapshots do EVS.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
GET /v2/{project_id}/cloudsnapshots/detail
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
O ID do projeto. Para obter detalhes sobre como obter o ID de projeto, consulte Obtenção de um ID de projeto. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
offset |
Não |
Integer |
O deslocamento. Esse parâmetro é usado quando snapshots são consultados por página e é usado em conjunto com o parâmetro limit. Por exemplo, há um total de 30 snapshots. Se você definir offset para 11 e limit para 10, a consulta começará a partir do décimo segundo snapshot e um máximo de 10 snapshots poderão ser consultados por vez. |
limit |
Não |
Integer |
O número máximo de resultados de consulta que podem ser retornados. O valor deve ser um número inteiro maior que 0. O valor padrão é 1000. |
name |
Não |
String |
O nome do snapshot. Você pode inserir até 64 caracteres. |
status |
Não |
String |
O status do snapshot. Para obter detalhes, consulte Status do snapshot do EVS. |
volume_id |
Não |
String |
O ID do disco de origem do snapshot. |
availability_zone |
Não |
String |
A AZ do disco de origem do snapshot. |
id |
Não |
String |
O ID do snapshot para filtragem. Vários IDs podem ser transferidos para filtragem. O formato é id=id1&id=id2&id=id3. |
dedicated_storage_name |
Não |
String |
O nome do pool de armazenamento dedicado. |
dedicated_storage_id |
Não |
String |
O ID do pool de armazenamento dedicado. |
service_type |
Não |
String |
O tipo de serviço. O valor pode ser EVS, DSS ou DESS. |
enterprise_project_id |
Não |
String |
O ID do projeto empresarial, que é usada para filtragem. Se all_granted_eps for transferido, os discos em todos os projetos empresariais que estão dentro do escopo de permissão serão consultados.
NOTA:
Para obter detalhes sobre como obter IDs de projeto empresarial e recursos de projeto empresarial, consulte Visão geral. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
O token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é o token do usuário. |
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
count |
Integer |
O número total de snapshots. Este valor não é afetado pelo parâmetro limit. |
snapshots |
Array of SnapshotList objects |
As informações do snapshot. |
snapshots_links |
Array of Link objects |
O marcador de posição da consulta na lista de snapshots. Esse campo é retornado somente quando limit é especificado na solicitação, e esse campo indica que apenas alguns snapshots são retornados nessa consulta. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
O ID do snapshot. |
status |
String |
O status do snapshot. |
name |
String |
O nome do snapshot. |
description |
String |
A descrição do snapshot. |
created_at |
String |
A hora em que o snapshot foi criado. |
updated_at |
String |
A hora em que o snapshot foi atualizado. |
metadata |
Map<String,String> |
Os metadados do snapshot. |
volume_id |
String |
O disco de origem do snapshot. |
size |
Integer |
O tamanho do snapshot. |
os-extended-snapshot-attributes:project_id |
String |
O ID do projeto. |
os-extended-snapshot-attributes:progress |
String |
O progresso da criação do snapshot. |
dedicated_storage_id |
String |
O ID do pool de armazenamento dedicado. |
dedicated_storage_name |
String |
O nome do pool de armazenamento dedicado. |
service_type |
String |
O tipo de serviço. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
href |
String |
O link de atalho correspondente. |
rel |
String |
O nome do marcador do link de atalho. |
Código de status: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error |
Error object |
A mensagem de erro retornada se ocorrer um erro. Para obter detalhes, consulte Parâmetros no campo error. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
code |
String |
O código de erro retornado se ocorrer um erro. Para os códigos de erro e seus significados, consulte Códigos de erro. |
message |
String |
A mensagem de erro retornada se ocorrer um erro. |
Exemplo de solicitações
-
Consultar detalhes de snapshots (os IDs de snapshot são c311bb8d-17f1-4e99-aaf9-e132c0391a73 e c7691083-15fa-4045-956c-2bcbfe1b9976. A consulta começa a partir do primeiro registro. O número de registros retornados não pode exceder 100.)
GET https://{endpoint}/v2/{project_id}/cloudsnapshots/detail?id=c311bb8d-17f1-4e99-aaf9-e132c0391a73&id=c7691083-15fa-4045-956c-2bcbfe1b9976&offset=0&limit=100
-
Consultar detalhes de todos os snapshots do disco EVS cujo ID é f8c7cce6-ec47-43ca-9297-b5604668b08f
GET https://{endpoint}/v2/{project_id}/cloudsnapshots/detail?volume_id=f8c7cce6-ec47-43ca-9297-b5604668b08f&service_type=EVS
Exemplo de respostas
Código de status: 200
OK
{ "count" : 3, "snapshots_links" : [ { "href" : "https://{endpoint}/v2/20a68d6b7a124ae2b6b8a22046ee5966/cloudsnapshots/detail?limit=1&marker=fc05d5d7-7e99-42fb-b6f2-9ddd1b990e67", "rel" : "next" } ], "snapshots" : [ { "status" : "available", "updated_at" : "2018-06-06T10:58:47.349051", "volume_id" : "f687bd70-37b3-4f00-a900-0ba1cfaa5196", "id" : "fc05d5d7-7e99-42fb-b6f2-9ddd1b990e67", "size" : 1, "os-extended-snapshot-attributes:progress" : "100%", "name" : "test03", "os-extended-snapshot-attributes:project_id" : "20a68d6b7a124ae2b6b8a22046ee5966", "service_type" : "EVS", "created_at" : "2018-05-30T03:14:44.457975", "metadata" : { } } ] }
Código de status: 400
Bad Request
{ "error" : { "message" : "XXXX", "code" : "XXX" } }
Código de amostra do SDK
O código de amostra do SDK é o seguinte.
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.evs.v2.region.EvsRegion; import com.huaweicloud.sdk.evs.v2.*; import com.huaweicloud.sdk.evs.v2.model.*; public class ListSnapshotsSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); EvsClient client = EvsClient.newBuilder() .withCredential(auth) .withRegion(EvsRegion.valueOf("<YOUR REGION>")) .build(); ListSnapshotsRequest request = new ListSnapshotsRequest(); request.withOffset(<offset>); request.withLimit(<limit>); request.withName("<name>"); request.withStatus("<status>"); request.withVolumeId("<volume_id>"); request.withAvailabilityZone("<availability_zone>"); request.withId("<id>"); request.withDedicatedStorageName("<dedicated_storage_name>"); request.withDedicatedStorageId("<dedicated_storage_id>"); request.withServiceType("<service_type>"); request.withEnterpriseProjectId("<enterprise_project_id>"); try { ListSnapshotsResponse response = client.listSnapshots(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkevs.v2.region.evs_region import EvsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkevs.v2 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = __import__('os').getenv("CLOUD_SDK_AK") sk = __import__('os').getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = EvsClient.new_builder() \ .with_credentials(credentials) \ .with_region(EvsRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListSnapshotsRequest() request.offset = <offset> request.limit = <limit> request.name = "<name>" request.status = "<status>" request.volume_id = "<volume_id>" request.availability_zone = "<availability_zone>" request.id = "<id>" request.dedicated_storage_name = "<dedicated_storage_name>" request.dedicated_storage_id = "<dedicated_storage_id>" request.service_type = "<service_type>" request.enterprise_project_id = "<enterprise_project_id>" response = client.list_snapshots(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" evs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := evs.NewEvsClient( evs.EvsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListSnapshotsRequest{} offsetRequest:= int32(<offset>) request.Offset = &offsetRequest limitRequest:= int32(<limit>) request.Limit = &limitRequest nameRequest:= "<name>" request.Name = &nameRequest statusRequest:= "<status>" request.Status = &statusRequest volumeIdRequest:= "<volume_id>" request.VolumeId = &volumeIdRequest availabilityZoneRequest:= "<availability_zone>" request.AvailabilityZone = &availabilityZoneRequest idRequest:= "<id>" request.Id = &idRequest dedicatedStorageNameRequest:= "<dedicated_storage_name>" request.DedicatedStorageName = &dedicatedStorageNameRequest dedicatedStorageIdRequest:= "<dedicated_storage_id>" request.DedicatedStorageId = &dedicatedStorageIdRequest serviceTypeRequest:= "<service_type>" request.ServiceType = &serviceTypeRequest enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest response, err := client.ListSnapshots(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
Mais
Para obter o código de amostra do SDK de mais linguagens de programação, consulte a guia Código de amostra no API Explorer. O código de amostra do SDK pode ser gerado automaticamente.
Códigos de status
Código de status |
Descrição |
---|---|
200 |
OK |
400 |
Bad Request |
Códigos de erro
Consulte Códigos de erro.