Consulta de detalles sobre todos los discos de EVS
Función
Esta API se utiliza para consultar detalles sobre todos los discos de EVS.
Método de invocación
Para obtener más información, consulte Invocación a las API.
URI
GET /v2/{project_id}/cloudvolumes/detail
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
El ID del proyecto. Para obtener más información sobre cómo obtener el ID de proyecto, consulte Obtención de un ID de proyecto. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
marker |
No |
String |
La consulta de paginación por ID de disco. Los datos de la primera página se consultan de forma predeterminada. Cuando se especifica un ID de disco en marker, se consulta la información de todos los discos que siguen al disco especificado. (La información sobre el disco especificado no se incluye en los resultados de la consulta.) |
name |
No |
String |
El nombre del disco. |
limit |
No |
Integer |
Número máximo de resultados de consulta que se pueden devolver. El valor predeterminado es 1000. Mínimo: 1 Máximo: 1000 Predeterminado: 1000 |
sort_key |
No |
String |
La palabra clave en función de la cual se ordenan los resultados devueltos. El valor puede ser id, status, size, o created_at, y el valor predeterminado es created_at. |
offset |
No |
Integer |
El desplazamiento de la consulta. Este parámetro se utiliza junto con *limit al consultar los discos de EVS. Por ejemplo, hay un total de 30 discos de EVS. Si configura offset como 11 y limit como 10, la consulta comienza en el duodécimo disco, y se puede consultar un máximo de 10 discos a la vez. |
sort_dir |
No |
String |
El orden de clasificación del resultado. El valor predeterminado es desc. desc: orden descendente asc: orden ascendente |
status |
No |
String |
El estado del disco. Para obtener más detalles, consulte Estado del disco de EVS. |
metadata |
No |
String |
Los metadatos del disco. |
availability_zone |
No |
String |
La información de zona de disponibilidad. |
multiattach |
No |
Boolean |
Si el disco se puede compartir. true: el disco se puede compartir. false: el disco no se puede compartir. |
service_type |
No |
String |
El tipo de servicio. EVS, DSS y DESS son servicios soportados. |
dedicated_storage_id |
No |
String |
El ID del grupo de almacenamiento dedicado. Todos los discos del grupo de almacenamiento dedicado se pueden filtrar por la coincidencia exacta. |
dedicated_storage_name |
No |
String |
El nombre del grupo de almacenamiento dedicado. Todos los discos del grupo de almacenamiento dedicado se pueden filtrar por coincidencia difusa. |
volume_type_id |
No |
String |
El ID de tipo de disco. Para obtener el ID, consulte el valor de id en la tabla para describir el parámetro volume_types en Consulta de tipos de disco de EVS. |
id |
No |
String |
El ID del disco. |
ids |
No |
String |
Los ID del disco. El valor está en formato ids=['id1','id2',...,'idx']. En la respuesta, el valor ids solo contiene los ID de disco válidos. Se ignoran los ID de disco no válidos. Se pueden consultar los detalles sobre un máximo de 60 discos. Si se especifican tanto id como ids en la solicitud, se omitirá id. |
enterprise_project_id |
No |
String |
El ID del proyecto de empresa, que se utiliza para filtrar. Si se transfiere all_granted_eps, se consultarán los discos de todos los proyectos de empresa que se encuentren dentro del ámbito del permiso. Para obtener detalles sobre cómo obtener identificadores y características de proyectos empresariales, consulte la Descripción general. |
server_id |
No |
String |
El ID del servidor. |
bootable |
No |
Boolean |
Si el disco es un disco de inicio o un disco del sistema. true indica que el disco es un disco de inicio o un disco del sistema y false indica que es un disco de datos. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
String |
El token del usuario. Se puede obtener invocando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario. |
Parámetros de respuesta
Código de estado: 200
Parámetro |
Tipo |
Descripción |
---|---|---|
count |
Integer |
El número de discos consultados. Este valor no se ve afectado por la paginación. |
volumes_links |
Array of Link objects |
El marcador de posición de la consulta en la lista de discos. Si solo se devuelven algunos discos en esta consulta, se devuelve la dirección URL del último disco consultado. Puede utilizar esta dirección URL para continuar consultando los discos restantes en la siguiente consulta. |
volumes |
Array of VolumeDetail objects |
La lista de discos devueltos. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
El ID del disco. |
links |
Array of Link objects |
El URI del disco. |
name |
String |
El nombre del disco. |
status |
String |
El estado del disco. Para obtener más detalles, consulte Estado del disco de EVS. |
attachments |
Array of Attachment objects |
La información de conexión de disco. |
availability_zone |
String |
La AZ a la que pertenece el disco. |
os-vol-host-attr:host |
String |
El campo reservado. |
source_volid |
String |
ID del disco de origen. Este parámetro tiene un valor si el disco se crea a partir de un disco de origen. Este campo no se admite actualmente. |
snapshot_id |
String |
El ID de la instantánea. Este parámetro tiene un valor si el disco se crea a partir de una instantánea. |
description |
String |
La descripción del disco. |
created_at |
String |
La hora en que se creó el disco. Formato de hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
os-vol-tenant-attr:tenant_id |
String |
El ID del tenant al que pertenece el disco. El ID del tenant es el mismo que el ID del proyecto. |
volume_image_metadata |
Map<String,Object> |
Los metadatos de la imagen de disco.
NOTA:
Para obtener más detalles sobre el campo volume_image_metadata, véase Consulta de detalles de imagen (API nativa de OpenStack). |
volume_type |
String |
El tipo de disco. El valor puede ser SATA, SAS, GPSSD, SSD, ESSD, GPSSD2 o ESSD2.
|
size |
Integer |
El tamaño del disco, en GiB. |
consistencygroup_id |
String |
El campo reservado. |
bootable |
String |
Si el disco es arrancable. true: el disco es arrancable. false: el disco no se puede arrancar. |
metadata |
Map<String,Object> |
Los metadatos del disco. __system__cmkid: El ID de CMK de encriptación de metadata. Este parámetro se utiliza junto con __system__encrypted para la encriptación. La longitud del ID de CMK se fija en 36 bytes. Para obtener detalles sobre cómo obtener el ID de clave, véase Consulta de la lista de claves. __system__encrypted El campo de encriptación de metadata. El valor puede ser 0 (sin encriptación) o 1 (encriptación). Si no se especifica este parámetro, el atributo de encriptación del disco es el mismo que el del origen de datos. Si el disco no se crea a partir de un origen de datos, el disco no se cifra de forma predeterminada. full_clone El método de creación cuando el disco se crea a partir de una instantánea.
hw:passthrough
orderID El parámetro que describe el modo de facturación de disco de metadata. Si este parámetro tiene un valor, el disco se factura anualmente/mensualmente. Si no se especifica este parámetro, el disco se factura en función del pago por uso. |
updated_at |
String |
La hora en que se actualizó el disco. Formato de hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
encrypted |
Boolean |
Este campo no se admite actualmente. |
replication_status |
String |
El campo reservado. |
os-volume-replication:extended_status |
String |
El campo reservado. |
os-vol-mig-status-attr:migstat |
String |
El campo reservado. |
os-vol-mig-status-attr:name_id |
String |
El campo reservado. |
shareable |
String |
Si el disco se puede compartir. El valor puede ser true (se puede compartir) o false (no se puede compartir). Este campo ha sido obsoleto. Use multiattach. |
user_id |
String |
El campo reservado. |
service_type |
String |
El tipo de servicio. EVS, DSS y DESS son servicios soportados. |
multiattach |
Boolean |
Si el disco se puede compartir. |
dedicated_storage_id |
String |
El ID del grupo de almacenamiento dedicado que aloja el disco. |
dedicated_storage_name |
String |
El nombre del grupo de almacenamiento dedicado que aloja el disco. |
tags |
Map<String,String> |
Las etiquetas de disco. Este campo tiene valores si el disco tiene etiquetas. O, se deja vacío. |
wwn |
String |
El identificador único utilizado al conectar el disco. |
enterprise_project_id |
String |
El ID del proyecto de empresa al que se ha agregado el disco. Para obtener detalles sobre cómo obtener identificadores y características de proyectos empresariales, consulte la Descripción general. |
serial_number |
String |
El número de serie del disco. Este campo se devuelve solo para los discos de SCSI que no sean HyperMetro y se utiliza para el mapeo de discos en la VM. |
iops |
iops object |
La información de IOPS del disco. Este parámetro solo aparece para un disco de SSD V2 de uso general o un disco de SSD V2 extremo. |
throughput |
throughput object |
La información del throughput del disco. Este parámetro aparece solo para un disco de SSD V2 de uso general. |
Parámetro |
Tipo |
Descripción |
---|---|---|
href |
String |
El enlace de acceso directo correspondiente. |
rel |
String |
El nombre del marcador de enlace de acceso directo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
attached_at |
String |
La hora a la que se ha conectado el disco. Formato de hora: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
attachment_id |
String |
El ID del archivo adjunto. |
device |
String |
El nombre del dispositivo. |
host_name |
String |
El nombre del host físico que alberga el servidor en la nube al que está conectado el disco. |
id |
String |
El ID del disco conectado. |
server_id |
String |
El ID del servidor al que está conectado el disco. |
volume_id |
String |
El ID del disco. |
Parámetro |
Tipo |
Descripción |
---|---|---|
frozened |
Boolean |
La etiqueta congelada. Predeterminado: false |
id |
String |
El ID del IOPS del disco. |
total_val |
Integer |
Las IOPS. |
Parámetro |
Tipo |
Descripción |
---|---|---|
frozened |
Boolean |
La etiqueta congelada. Predeterminado: false |
id |
String |
El ID del throughput. |
total_val |
Integer |
El throughput. |
Código de estado: 400
Parámetro |
Tipo |
Descripción |
---|---|---|
error |
Error object |
El mensaje de error devuelto si se produce un error. Para obtener más detalles, consulte Parámetros en el campo error. |
Parámetro |
Tipo |
Descripción |
---|---|---|
code |
String |
El código de error devuelto si se produce un error. Para conocer los códigos de error y sus significados, véase Códigos de error. |
message |
String |
El mensaje de error devuelto si se produce un error. |
Ejemplo de solicitudes
-
Consulta de detalles de discos cuyos ID son e92ba908-82f8-4728-b8cc-82f2f56bd461, 40g42920-4243-420f-8bb2-a0bd7660fbd8 y b1fd8dcc-dd67-4edf-b89e-87c3485112ec (los discos se ordenan por tamaño).
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
-
Consulta de detalles de todos los discos de datos compartidos de un ECS (El ID del ECS es 3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c. Los resultados devueltos se ordenan en orden ascendente.)
GET https://{endpoint}/v2/{project_id}/cloudvolumes/detail?server_id=3ffcbe9d-e5bf-45f4-aa0a-670b54bda66c&multiattach=true&sort_dir=asc
Ejemplo de respuestas
Código de estado: 200
Aceptar
{ "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 estado: 400
Error en la solicitud
{ "error" : { "message" : "XXXX", "code" : "XXX" } }
Ejemplo de código del SDK
El ejemplo de código del SDK es el siguiente.
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) } } |
Otro más
Para obtener un ejemplo de código del SDK de más lenguajes de programación, consulta la ficha Ejemplo de código en API Explorer. El ejemplo de código del SDK se puede generar automáticamente.
Códigos de estado
Código de estado |
Descripción |
---|---|
200 |
Aceptar |
400 |
Error en la solicitud |
Códigos de error
Consulte Códigos de error.