Atualização de um disco EVS
Função
Esta API é usada para atualizar o nome e a descrição de um disco EVS.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
PUT /v2/{project_id}/cloudvolumes/{volume_id}
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. |
volume_id |
Sim |
String |
O ID do disco. |
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âmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
volume |
Sim |
UpdateVolumeOption object |
As informações do disco a ser modificado. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
description |
Não |
String |
A nova descrição do disco. name e description não podem ser nulos ao mesmo tempo. Você pode inserir até 85 caracteres. |
name |
Não |
String |
O novo nome do disco. name e description não podem ser nulos ao mesmo tempo. Você pode inserir até 64 caracteres. |
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
attachments |
Array of Attachment objects |
Se o disco está anexado. |
availability_zone |
String |
A AZ à qual o disco pertence. |
bootable |
String |
Se o disco é inicializável. |
created_at |
String |
A hora em que o disco foi criado. |
id |
String |
O ID do disco. |
links |
Array of Link objects |
O URI do disco. |
metadata |
VolumeMetadata object |
Os metadados do disco. |
multiattach |
Boolean |
Se o disco é compartilhável. |
name |
String |
O nome do disco. |
os-vol-host-attr:host |
String |
O campo reservado. |
os-vol-tenant-attr:tenant_id |
String |
O ID do projeto ao qual o disco pertence. |
shareable |
String |
Se o disco é compartilhável. |
size |
Integer |
O tamanho do disco. |
snapshot_id |
String |
O ID do snapshot. |
source_volid |
String |
O campo reservado. |
status |
String |
O status do disco. |
volume_image_metadata |
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. |
description |
String |
A descrição do disco. |
os-volume-replication:extended_status |
String |
O campo reservado. |
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 |
---|---|---|
href |
String |
O link de atalho correspondente. |
rel |
String |
O nome do marcador do link de atalho. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
__system__cmkid |
String |
O ID da CMK de encriptação em metadata. Este parâmetro é utilizado em conjunto com __system__encrypted para encriptação. O comprimento do cmkid é fixado em 36 bytes. Para obter detalhes sobre como obter o ID de chave, consulte Consulta da lista de chaves. |
__system__encrypted |
String |
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 |
String |
O método de criação quando o disco é criado a partir de um snapshot.
|
hw:passthrough |
String |
|
orderID |
String |
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. Caso contrário, o disco é cobrado em uma base de pagamento por uso. |
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
Atualizar o nome e a descrição do disco EVS
PUT https://{endpoint}/v2/{project_id}/cloudvolumes/{volume_id} { "volume" : { "name" : "test_volume", "description" : "test" } }
Exemplo de respostas
Código de status: 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 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
Atualizar o nome e a descrição do disco 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 |
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"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); EvsClient client = EvsClient.newBuilder() .withCredential(auth) .withRegion(EvsRegion.valueOf("<YOUR REGION>")) .build(); UpdateVolumeRequest request = new UpdateVolumeRequest(); 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
Atualizar o nome e a descrição do disco 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 |
# 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 = UpdateVolumeRequest() 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
Atualizar o nome e a descrição do disco 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 |
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.UpdateVolumeRequest{} 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) } } |
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.