Consulta de detalhes sobre todos os discos EVS
Função
Esta API é usada para consultar detalhes sobre todos os discos EVS.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
GET /v2/{project_id}/cloudvolumes/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 |
---|---|---|---|
marker |
Não |
String |
A consulta de paginação por ID de disco. Os dados na primeira página são consultados por padrão. Quando um ID de disco é especificado no marker, as informações de todos os discos que seguem o disco especificado são consultadas. (As informações do disco especificado não estão incluídas nos resultados da consulta.) |
name |
Não |
String |
O nome do disco. |
limit |
Não |
Integer |
O número máximo de resultados de consulta que podem ser retornados. O valor padrão é 1000. Mínimo: 1 Máximo: 1000 Padrão: 1000 |
sort_key |
Não |
String |
Palavra-chave com base na qual os resultados retornados são classificados. O valor pode ser id, status, size ou created_at, e o valor padrão é created_at. |
offset |
Não |
Integer |
O deslocamento da consulta. Este parâmetro é usado junto com *limit quando você consulta discos EVS. Por exemplo, há um total de 30 discos EVS. Se você definir offset para 11 e limit para 10, a consulta começará a partir do décimo segundo disco e um máximo de 10 discos poderão ser consultados por vez. |
sort_dir |
Não |
String |
A ordem de classificação do resultado. O valor padrão é desc. desc: a ordem decrescente asc: a ordem crescente |
status |
Não |
String |
O status do disco. Para obter detalhes, consulte Status do disco EVS. |
metadata |
Não |
String |
Os metadados do disco. |
availability_zone |
Não |
String |
A informação da AZ. |
multiattach |
Não |
Boolean |
Se o disco é compartilhável. true: o disco é compartilhável. false: o disco não pode ser compartilhado. |
service_type |
Não |
String |
O tipo de serviço. Os serviços suportados são EVS, DSS e DESS. |
dedicated_storage_id |
Não |
String |
O ID do pool de armazenamento dedicado. Todos os discos no pool de armazenamento dedicado podem ser filtrados por correspondência exata. |
dedicated_storage_name |
Não |
String |
O nome do pool de armazenamento dedicado. Todos os discos no pool de armazenamento dedicado podem ser filtrados por correspondência difusa. |
volume_type_id |
Não |
String |
O ID do tipo de disco. Para obter o ID, consulte o valor de id na tabela para descrever o parâmetro volume_types em Consulta de tipos de disco EVS. |
id |
Não |
String |
O ID do disco. |
ids |
Não |
String |
Os IDs do disco. O valor é no formato ids=['id1','id2',...,'idx']. Na resposta, o valor de ids contém apenas IDs de disco válidos. IDs de disco inválidos são ignorados. Os detalhes sobre um máximo de 60 discos podem ser consultados. Se ambos id e ids forem especificados na solicitação, id será ignorado. |
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. Para obter detalhes sobre como obter IDs de projeto empresarial e recursos de projeto empresarial, consulte Visão geral. |
server_id |
Não |
String |
O ID do servidor. |
bootable |
Não |
Boolean |
Se o disco é um disco de inicialização ou um disco do sistema. true indica que o disco é um disco de inicialização ou disco do sistema e false indica que o disco é um disco de dados. |
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 de discos consultados. Este valor não é afetado pela paginação. |
volumes_links |
Array of Link objects |
O marcador de posição da consulta na lista de discos. Se apenas alguns discos forem retornados nesta consulta, o URL do último disco consultado será retornado. Você pode usar esse URL para continuar a consultar os discos restantes na próxima consulta. |
volumes |
Array of VolumeDetail objects |
A lista de discos retornados. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
O ID do disco. |
links |
Array of Link objects |
O URI do disco. |
name |
String |
O nome do disco. |
status |
String |
O status do disco. Para obter detalhes, consulte Status do disco EVS. |
attachments |
Array of Attachment objects |
As informações de anexo do disco. |
availability_zone |
String |
A AZ à qual o disco pertence. |
os-vol-host-attr:host |
String |
O campo reservado. |
source_volid |
String |
O ID do disco de origem. Este parâmetro tem um valor se o disco for criado a partir de um disco de origem. Este campo não é suportado no momento. |
snapshot_id |
String |
O ID do snapshot. Este parâmetro tem um valor se o disco for criado a partir de um snapshot. |
description |
String |
A descrição do disco. |
created_at |
String |
A hora em que o disco foi criado. Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
os-vol-tenant-attr:tenant_id |
String |
O ID do locatário ao qual o disco pertence. O ID do locatário é o mesmo que o ID do projeto. |
volume_image_metadata |
Map<String,Object> |
Os metadados da imagem de disco.
NOTA:
Para obter detalhes sobre o campo volume_image_metadata, consulte Consulta de detalhes da imagem (API OpenStack nativo). |
volume_type |
String |
O tipo de disco. O valor pode ser SATA, SAS, GPSSD, SSD, ESSD, GPSSD2 ou ESSD2.
|
size |
Integer |
O tamanho do disco, em GiB. |
consistencygroup_id |
String |
O campo reservado. |
bootable |
String |
Se o disco é inicializável. true: o disco é inicializável. false: o disco não é inicializável. |
metadata |
Map<String,Object> |
Os metadados do disco. __system__cmkid: o ID da CMK de encriptação em metadata. Este parâmetro é utilizado em conjunto com __system__encrypted para encriptação. O comprimento do ID da CMK é fixado em 36 bytes. Para obter detalhes sobre como obter o ID de chave, consulte Consulta da lista de chaves. __system__encrypted O campo de encriptação nos metadata. O valor pode ser 0 (não criptografado) ou 1 (criptografado). Se esse parâmetro não for especificado, o atributo de encriptação do disco será o mesmo da fonte de dados. Se o disco não for criado a partir de uma fonte de dados, o disco não será criptografado por padrão. full_clone O método de criação quando o disco é criado a partir de um snapshot.
hw:passthrough
orderID O parâmetro que descreve o modo de cobrança do disco em metadata. Se esse parâmetro tiver um valor, o disco será cobrado anualmente/mensalmente. Se esse parâmetro não for especificado, o disco será cobrado em uma base de pagamento por uso. |
updated_at |
String |
A hora em que o disco foi atualizado. Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
encrypted |
Boolean |
Este campo não é suportado no momento. |
replication_status |
String |
O campo reservado. |
os-volume-replication:extended_status |
String |
O campo reservado. |
os-vol-mig-status-attr:migstat |
String |
O campo reservado. |
os-vol-mig-status-attr:name_id |
String |
O campo reservado. |
shareable |
String |
Se o disco é compartilhável. O valor pode ser true (compartilhável) ou false (não compartilhável). Este campo foi preterido. Use multiattach. |
user_id |
String |
O campo reservado. |
service_type |
String |
O tipo de serviço. Os serviços suportados são EVS, DSS e DESS. |
multiattach |
Boolean |
Se o disco é compartilhável. |
dedicated_storage_id |
String |
O ID do pool de armazenamento dedicado que aloja o disco. |
dedicated_storage_name |
String |
O nome do pool de armazenamento dedicado que aloja o disco. |
tags |
Map<String,String> |
As tags do disco. Este campo tem valores se o disco tiver tags. Ou, é deixado vazio. |
wwn |
String |
O identificador exclusivo usado ao anexar o disco. |
enterprise_project_id |
String |
O ID do projeto empresarial ao qual o disco foi adicionado. Para obter detalhes sobre como obter IDs de projeto empresarial e recursos de projeto empresarial, consulte Visão geral. |
serial_number |
String |
O número de série do disco. Esse campo é retornado somente para discos SCSI não HyperMetro e é usado para mapeamento de disco na VM. |
iops |
iops object |
As informações de IOPS do disco. Este parâmetro é retornado apenas para um disco SSD V2 de uso geral ou um disco SSD V2 extremo. |
throughput |
throughput object |
As informações de taxa de transferência do disco. Este parâmetro é retornado apenas para um disco SSD V2 de uso geral. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
href |
String |
O link de atalho correspondente. |
rel |
String |
O nome do marcador do link de atalho. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
attached_at |
String |
A hora em que o disco foi anexado. Formato da hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
attachment_id |
String |
O ID do anexo. |
device |
String |
O nome do dispositivo. |
host_name |
String |
O nome do host físico que hospeda o servidor de nuvem ao qual o disco está anexado. |
id |
String |
O ID do disco anexado. |
server_id |
String |
O ID do servidor ao qual o disco está anexado. |
volume_id |
String |
O ID do disco. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
frozened |
Boolean |
A tag congelada. Padrão: false |
id |
String |
O ID do IOPS do disco. |
total_val |
Integer |
O IOPS. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
frozened |
Boolean |
A tag congelada. Padrão: false |
id |
String |
O ID da taxa de transferência. |
total_val |
Integer |
A taxa de transferência. |
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 discos cujos IDs são e92ba908-82f8-4728-b8cc-82f2f56bd461, 40g42920-4243-420f-8bb2-a0bd7660fbd8 e b1fd8dcc-dd67-4edf-b89e-87c3485112ec (Os discos são classificados por tamanho.)
GET https://{endpoint}/v2/{project_id}/cloudvolumes/detail?ids=['e92ba908-82f8-4728-b8cc-82f2f56bd461', '40g42920-4243-420f-8bb2-a0bd7660fbd8', 'b1fd8dcc-dd67-4edf-b89e-87c3485112ec']&offset=0&limit=100&sort_key=size&sort_dir=asc
-
Consultar detalhes de todos os discos de dados compartilhados de um ECS (o ID do ECS é 3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c. Os resultados retornados são classificados em ordem crescente.)
GET https://{endpoint}/v2/{project_id}/cloudvolumes/detail?server_id=3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c&multiattach=true&sort_dir=asc
Exemplo de respostas
Código de status: 200
OK
{ "count" : 1, "volumes" : [ { "attachments" : [ ], "availability_zone" : "az-dc-1", "bootable" : "false", "created_at" : "2016-05-25T02:42:10.856332", "id" : "b104b8db-170d-441b-897a-3c8ba9c5a214", "links" : [ { "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "self" }, { "href" : "https://volume.localdomain.com:8776/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "bookmark" } ], "metadata" : { }, "name" : "zjb_u25_test", "os-vol-host-attr:host" : "pod01.xxx#SATA", "volume_image_metadata" : { }, "os-vol-tenant-attr:tenant_id" : "dd14c6ac581f40059e27f5320b60bf2f", "replication_status" : "disabled", "multiattach" : false, "size" : 1, "status" : "available", "updated_at" : "2016-05-25T02:42:22.341984", "user_id" : "b0524e8342084ef5b74f158f78fc3049", "volume_type" : "SATA", "service_type" : "EVS", "wwn" : " 688860300000d136fa16f48f05992360" } ], "volumes_links" : [ { "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/detail?limit=1&marker=b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "next" } ] }
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 57 58 59 60 61 62 63 |
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 ListVolumesSolution { 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(); ListVolumesRequest request = new ListVolumesRequest(); request.withMarker("<marker>"); request.withName("<name>"); request.withLimit(<limit>); request.withSortKey("<sort_key>"); request.withOffset(<offset>); request.withSortDir("<sort_dir>"); request.withStatus("<status>"); request.withMetadata("<metadata>"); request.withAvailabilityZone("<availability_zone>"); request.withMultiattach(<multiattach>); request.withServiceType("<service_type>"); request.withDedicatedStorageId("<dedicated_storage_id>"); request.withDedicatedStorageName("<dedicated_storage_name>"); request.withVolumeTypeId("<volume_type_id>"); request.withId("<id>"); request.withIds("<ids>"); request.withEnterpriseProjectId("<enterprise_project_id>"); request.withServerId("<server_id>"); try { ListVolumesResponse response = client.listVolumes(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 41 42 43 44 45 46 47 |
# 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 = ListVolumesRequest() request.marker = "<marker>" request.name = "<name>" request.limit = <limit> request.sort_key = "<sort_key>" request.offset = <offset> request.sort_dir = "<sort_dir>" request.status = "<status>" request.metadata = "<metadata>" request.availability_zone = "<availability_zone>" request.multiattach = <Multiattach> request.service_type = "<service_type>" request.dedicated_storage_id = "<dedicated_storage_id>" request.dedicated_storage_name = "<dedicated_storage_name>" request.volume_type_id = "<volume_type_id>" request.id = "<id>" request.ids = "<ids>" request.enterprise_project_id = "<enterprise_project_id>" request.server_id = "<server_id>" response = client.list_volumes(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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
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.ListVolumesRequest{} markerRequest:= "<marker>" request.Marker = &markerRequest nameRequest:= "<name>" request.Name = &nameRequest limitRequest:= int32(<limit>) request.Limit = &limitRequest sortKeyRequest:= "<sort_key>" request.SortKey = &sortKeyRequest offsetRequest:= int32(<offset>) request.Offset = &offsetRequest sortDirRequest:= "<sort_dir>" request.SortDir = &sortDirRequest statusRequest:= "<status>" request.Status = &statusRequest metadataRequest:= "<metadata>" request.Metadata = &metadataRequest availabilityZoneRequest:= "<availability_zone>" request.AvailabilityZone = &availabilityZoneRequest multiattachRequest:= <multiattach> request.Multiattach = &multiattachRequest serviceTypeRequest:= "<service_type>" request.ServiceType = &serviceTypeRequest dedicatedStorageIdRequest:= "<dedicated_storage_id>" request.DedicatedStorageId = &dedicatedStorageIdRequest dedicatedStorageNameRequest:= "<dedicated_storage_name>" request.DedicatedStorageName = &dedicatedStorageNameRequest volumeTypeIdRequest:= "<volume_type_id>" request.VolumeTypeId = &volumeTypeIdRequest idRequest:= "<id>" request.Id = &idRequest idsRequest:= "<ids>" request.Ids = &idsRequest enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest serverIdRequest:= "<server_id>" request.ServerId = &serverIdRequest response, err := client.ListVolumes(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.