Realización de una prueba de conmutación de interfaz virtual
Función
Si hay dos conexiones, se requiere la conmutación automática entre las conexiones para las pruebas de conectividad. Si se realiza una conmutación, la interfaz virtual de la conexión en uso está deshabilitada y el tráfico se interrumpe. Puede realizar dos operaciones en una interfaz virtual:- Ejecutar el comando shutdown para deshabilitar la interfaz virtual.- Ejecutar el comando undo_shutdown para habilitar la interfaz virtual. Si se selecciona shutdown para la prueba de conmutación, la interfaz virtual está en el estado ADMIN_SHUTDOWN y no se pueden realizar operaciones en la interfaz virtual. Si se selecciona undo_shutdown para la prueba de conmutación, la interfaz virtual está en el estado ACTIVE.
Método de invocación
Para obtener más información, consulte Invocación a las API.
URI
POST /v3/{project_id}/dcaas/switchover-test
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
Especifica el ID del proyecto. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
String |
Especifica el token de usuario. Para obtener el token, consulte la sección "Obtención del token de usuario" en la Referencia de las API de Identity and Access Management. El token es el valor de X-Subject-Token en el encabezado de respuesta. Mínimo: 0 Máximo: 10240 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
switchover_test_record |
No |
CreateSwitchoverTest object |
Especifica los parámetros para crear un registro de prueba de conmutación. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
resource_id |
Sí |
String |
Especifica el ID del recurso en el que se va a realizar la prueba de conmutación. |
resource_type |
No |
String |
Especifica el tipo del recurso en el que se va a realizar la prueba de conmutación. Predeterminado: virtual_interface Mínimo: 0 Máximo: 128 Valores de enumeración:
|
operation |
Sí |
String |
Especifica si se debe realizar una prueba de conmutación. Opciones de valor: shutdown y undo_shutdown Mínimo: 0 Máximo: 128 Valores de enumeración:
|
Parámetros de respuesta
Código de estado: 201
Parámetro |
Tipo |
Descripción |
---|---|---|
request_id |
String |
Especifica el ID de la solicitud. |
switchover_test_record |
SwitchoverTestRecord object |
Proporciona información adicional sobre el registro de prueba de conmutación. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID único del registro de prueba de conmutación. |
tenant_id |
String |
Especifica el ID del tenant. Mínimo: 32 Máximo: 32 |
resource_id |
String |
Especifica el ID del recurso en el que se va a realizar la prueba de conmutación. |
resource_type |
String |
Especifica el tipo del recurso en el que se va a realizar la prueba de conmutación. Predeterminado: virtual_interface Mínimo: 0 Máximo: 128 Valores de enumeración:
|
operation |
String |
Especifica si se debe realizar una prueba de conmutación. Opciones de valor: shutdown y undo_shutdown Mínimo: 0 Máximo: 128 Valores de enumeración:
|
start_time |
String |
Especifica la hora de inicio de la prueba de conmutación. |
end_time |
String |
Especifica la hora de finalización de la prueba de conmutación. |
operate_status |
String |
Especifica el estado de la prueba de conmutación.
Valores de enumeración:
|
Ejemplo de solicitudes
Apagar la interfaz virtual para realizar una prueba de conmutación
POST https://{dc_endpoint}/v3/de58f033eb664102ba85e4a5db473ca5/dcaas/switchover-test { "switchover_test_record" : { "resource_type" : "virtual_interface", "resource_id" : "d0b3329c-0063-470c-b1dc-657656b2e540", "operation" : "shutdown" } }
Ejemplo de respuestas
Código de estado: 201
Creado
{ "switchover_test_record" : { "id" : "862d61f1-d9ea-4093-ba0e-2b8d415e3ab3", "tenant_id" : "de58f033eb664102ba85e4a5db473ca5", "resource_type" : "virtual_interface", "resource_id" : "d0b3329c-0063-470c-b1dc-657656b2e540", "operation" : "shutdown", "start_time" : "2023-10-09T18:41:23.000Z", "end_time" : "2023-10-09T18:41:23.000Z", "operate_status" : "STARTING" }, "request_id" : "f91634a12b116b6f946d7871f5b4de18" }
Ejemplo de código del SDK
El ejemplo de código del SDK es el siguiente.
Java
Apagar la interfaz virtual para realizar una prueba de conmutación
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 |
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.dc.v3.region.DcRegion; import com.huaweicloud.sdk.dc.v3.*; import com.huaweicloud.sdk.dc.v3.model.*; public class SwitchoverTestSolution { 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); DcClient client = DcClient.newBuilder() .withCredential(auth) .withRegion(DcRegion.valueOf("<YOUR REGION>")) .build(); SwitchoverTestRequest request = new SwitchoverTestRequest(); CreateSwitchoverTestRequestBody body = new CreateSwitchoverTestRequestBody(); CreateSwitchoverTest switchoverTestRecordbody = new CreateSwitchoverTest(); switchoverTestRecordbody.withResourceId("d0b3329c-0063-470c-b1dc-657656b2e540") .withResourceType(CreateSwitchoverTest.ResourceTypeEnum.fromValue("virtual_interface")) .withOperation(CreateSwitchoverTest.OperationEnum.fromValue("shutdown")); body.withSwitchoverTestRecord(switchoverTestRecordbody); request.withBody(body); try { SwitchoverTestResponse response = client.switchoverTest(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
Apagar la interfaz virtual para realizar una prueba de conmutación
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 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkdc.v3.region.dc_region import DcRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkdc.v3 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.getenv("CLOUD_SDK_AK") sk = os.getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = DcClient.new_builder() \ .with_credentials(credentials) \ .with_region(DcRegion.value_of("<YOUR REGION>")) \ .build() try: request = SwitchoverTestRequest() switchoverTestRecordbody = CreateSwitchoverTest( resource_id="d0b3329c-0063-470c-b1dc-657656b2e540", resource_type="virtual_interface", operation="shutdown" ) request.body = CreateSwitchoverTestRequestBody( switchover_test_record=switchoverTestRecordbody ) response = client.switchover_test(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
Apagar la interfaz virtual para realizar una prueba de conmutación
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" dc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dc/v3/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 := dc.NewDcClient( dc.DcClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.SwitchoverTestRequest{} resourceTypeSwitchoverTestRecord:= model.GetCreateSwitchoverTestResourceTypeEnum().VIRTUAL_INTERFACE switchoverTestRecordbody := &model.CreateSwitchoverTest{ ResourceId: "d0b3329c-0063-470c-b1dc-657656b2e540", ResourceType: &resourceTypeSwitchoverTestRecord, Operation: model.GetCreateSwitchoverTestOperationEnum().SHUTDOWN, } request.Body = &model.CreateSwitchoverTestRequestBody{ SwitchoverTestRecord: switchoverTestRecordbody, } response, err := client.SwitchoverTest(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 |
---|---|
201 |
Creado |
Códigos de error
Consulte Códigos de error.