Actualización de un disco de EVS
Función
Esta API se utiliza para actualizar el nombre y la descripción de un disco de EVS.
Método de invocación
Para obtener más información, consulte Invocación de las API.
Información de autorización
Cada cuenta tiene todos los permisos necesarios para invocar todas las API, pero los usuarios de IAM deben tener asignados los permisos requeridos.
- Si está utilizando la autorización basada en roles/políticas, consulte Políticas de permisos y acciones admitidas para obtener más información sobre los permisos requeridos.
- Si está utilizando la autorización basada en políticas de identidad, no se requiere ningún permiso basado en políticas de identidad para invocar esta API.
URI
PUT /v2/{project_id}/cloudvolumes/{volume_id}
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| project_id | Sí | String | Definición El ID del proyecto. Para obtener más información, consulte Obtención de un ID de proyecto. Restricciones N/D Rango N/D Valor predeterminado N/D |
| volume_id | Sí | String | Definición El ID del disco. Puede invocar la API Consulta de detalles sobre todos los discos de EVS para obtener el ID del disco. Restricciones N/D Rango N/D Valor predeterminado N/D |
Parámetros de solicitud
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| X-Auth-Token | Sí | String | Definición El token de usuario. Puede obtenerlo invocando la API de IAM. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario. Restricciones N/D Rango N/D Valor predeterminado N/D |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| volume | Sí | UpdateVolumeOption object | Definición La información del disco que se va a modificar. Restricciones N/D Rango N/D Valor predeterminado N/D |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| description | No | String | Definición La nueva descripción del disco. Restricciones name y description no pueden ser nulos. Puede contener un máximo de 85 caracteres. Rango N/D Valor predeterminado N/D |
| name | No | String | Definición El nombre del disco nuevo. Restricciones name y description no pueden ser nulos. Puede contener un máximo de 64 caracteres. Rango N/D Valor predeterminado N/D |
Parámetros de respuesta
Código de estado: 200
| Parámetro | Tipo | Descripción |
|---|---|---|
| attachments | Array of Attachment objects | Definición Si el disco está conectado. Rango N/D |
| availability_zone | String | Definición La AZ a la que pertenece el disco. Rango N/D |
| bootable | String | Definición Si el disco es arrancable. Rango N/D |
| created_at | String | Definición La hora en que se creó el disco. Rango N/D |
| id | String | Definición El ID del disco. Rango N/D |
| links | Array of Link objects | Definición El URI del disco. Rango N/D |
| metadata | VolumeMetadata object | Definición Los metadatos del disco. Rango N/D |
| multiattach | Boolean | Definición Si el disco es compartible. Rango N/D |
| name | String | Definición El nombre del disco. Rango N/D |
| os-vol-host-attr:host | String | Definición El campo reservado. Rango N/D |
| os-vol-tenant-attr:tenant_id | String | Definición El ID del proyecto al que pertenece el disco. Rango N/D |
| shareable | String | Definición Si el disco es compartible. Rango N/D |
| size | Integer | Definición La capacidad del disco. Rango N/D |
| snapshot_id | String | Definición El ID de la instantánea. Rango N/D |
| source_volid | String | Definición El campo reservado. Rango N/D |
| status | String | Definición El estado del disco. Rango Para obtener más información, consulte Estado del disco de EVS. |
| volume_image_metadata | Object | Definición Los metadatos de la imagen del disco. [Para obtener más información sobre el campo volume_image_metadata, consulte Consulta de detalles de imágenes (API nativa de OpenStack).] Rango N/D |
| volume_type | String | Definición El tipo de disco. Rango N/D |
| description | String | Definición La descripción del disco. Rango N/D |
| os-volume-replication:extended_status | String | Definición El campo reservado. Rango N/D |
| Parámetro | Tipo | Descripción |
|---|---|---|
| attached_at | String | Definición La hora en que se conectó el disco. Rango Formato de tiempo: UTC AAAA-MM-DDTHH:MM:SS.XXXXXX |
| attachment_id | String | Definición El ID del adjunto. Rango N/D |
| device | String | Definición El nombre del dispositivo. Rango N/D |
| host_name | String | Definición El nombre del host físico que aloja el servidor en la nube al que está conectado el disco. Rango N/D |
| id | String | Definición El ID del disco conectado. Rango N/D |
| server_id | String | Definición El ID del servidor al que está conectado el disco. Rango N/D |
| volume_id | String | Definición El ID del disco. Rango N/D |
| Parámetro | Tipo | Descripción |
|---|---|---|
| href | String | Definición El enlace de acceso directo correspondiente. Rango N/D |
| rel | String | Definición El nombre del marcador del enlace de acceso directo. Rango N/D |
| Parámetro | Tipo | Descripción |
|---|---|---|
| __system__cmkid | String | Definición El ID del CMK de encriptación en metadata. Este parámetro se utiliza junto con __system__encrypted para la encriptación. La longitud de cmkid se fija en 36 bytes. [Para obtener más información sobre cómo obtener el ID de clave, consulte Consulta de la lista de claves.] Rango N/D |
| __system__encrypted | String | Definición El campo de encriptación en metadata. El valor puede ser 0 (sin encriptación) o 1 (encriptación). Si este parámetro no se especifica, 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. Rango |
| hw:passthrough | String | Definición El tipo de dispositivo de disco. Rango
|
| orderID | String | Definición 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. Rango N/D |
Código de estado: 400
| Parámetro | Tipo | Descripción |
|---|---|---|
| error | Error object | Definición El código de error devuelto si se produce un error. Para obtener más información sobre el código de error, consulte Códigos de error. Rango N/D |
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | String | Definición El código de error devuelto si se produce un error. Rango Para obtener más información sobre el código de error, consulte Códigos de error. |
| message | String | Definición El mensaje de error devuelto si se produce un error. Rango N/D |
Ejemplos de solicitudes
Actualización del nombre y la descripción del disco de EVS
PUT https://{endpoint}/v2/{project_id}/cloudvolumes/{volume_id}
{
"volume" : {
"name" : "test_volume",
"description" : "test"
}
} Ejemplos de respuestas
Código de estado: 200
OK
{
"id" : "36ba39af-3579-4e6e-adfc-b764349c0f77",
"links" : [ {
"href" : "https://volume.region.xxx.xxx-tsi.de/v2/3cfb09080bd944d0b4cdd72ef26857bd/volumes/36ba39af-3579-4e6e-adfc-b764349c0f77",
"rel" : "self"
}, {
"href" : "https://volume.region.xxx.xxx-tsi.de/3cfb09080bd944d0b4cdd72ef26857bd/volumes/36ba39af-3579-4e6e-adfc-b764349c0f77",
"rel" : "bookmark"
} ],
"name" : "newVolume",
"status" : "in-use",
"attachments" : [ {
"server_id" : "c3d3250c-7ce5-42cc-b620-dd2b63d19ca5",
"attachment_id" : "011a2bdb-a033-4479-845b-50bd8ed7f4d4",
"attached_at" : "2017-05-23T11:27:38.604815",
"volume_id" : "36ba39af-3579-4e6e-adfc-b764349c0f77",
"device" : "/dev/sdf",
"id" : "36ba39af-3579-4e6e-adfc-b764349c0f77"
} ],
"description" : "new volume",
"multiattach" : false,
"shareable" : false,
"size" : 10,
"metadata" : {
"hw:passthrough" : "false"
},
"bootable" : "false",
"availability_zone" : "az-dc-1",
"created_at" : "2017-05-23T09:49:44.481299",
"volume_type" : "SATA"
} Código de estado: 400
Bad Request
{
"error" : {
"message" : "XXXX",
"code" : "XXX"
}
} Código de ejemplo del SDK
El código de ejemplo del SDK es el siguiente.
Java
Actualización del nombre y la descripción del disco de EVS
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 | 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 UpdateVolumeSolution { 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"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); EvsClient client = EvsClient.newBuilder() .withCredential(auth) .withRegion(EvsRegion.valueOf("<YOUR REGION>")) .build(); UpdateVolumeRequest request = new UpdateVolumeRequest(); request.withVolumeId("{volume_id}"); UpdateVolumeRequestBody body = new UpdateVolumeRequestBody(); UpdateVolumeOption volumebody = new UpdateVolumeOption(); volumebody.withDescription("test") .withName("test_volume"); body.withVolume(volumebody); request.withBody(body); try { UpdateVolumeResponse response = client.updateVolume(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
Actualización del nombre y la descripción del disco de EVS
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 | # coding: utf-8 import os 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 = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = EvsClient.new_builder() \ .with_credentials(credentials) \ .with_region(EvsRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpdateVolumeRequest() request.volume_id = "{volume_id}" volumebody = UpdateVolumeOption( description="test", name="test_volume" ) request.body = UpdateVolumeRequestBody( volume=volumebody ) response = client.update_volume(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
Actualización del nombre y la descripción del disco de EVS
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 | 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") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := evs.NewEvsClient( evs.EvsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpdateVolumeRequest{} request.VolumeId = "{volume_id}" descriptionVolume:= "test" nameVolume:= "test_volume" volumebody := &model.UpdateVolumeOption{ Description: &descriptionVolume, Name: &nameVolume, } request.Body = &model.UpdateVolumeRequestBody{ Volume: volumebody, } response, err := client.UpdateVolume(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
Más
Para obtener el código de ejemplo de SDK de más lenguajes de programación, consulte la pestaña Código de ejemplo en Explorador de API. El código de ejemplo del SDK se puede generar automáticamente.
Códigos de estado
| Código de estado | Descripción |
|---|---|
| 200 | OK |
| 400 | Bad Request |
Códigos de error
Consulte Códigos de error.